我正在做一个系统。我想要的是,对于每 6 件商品,您必须购买 5 件(所以当价格为每件 5 件时,6 件商品不是 30 而是 25,与 12、18、24 等相同......)
我该怎么做?
我认为它会是这样的:
if (amount % 6 == 0) {
}</code>
但是,如果我是正确的,那将有一次。
我正在做一个系统。我想要的是,对于每 6 件商品,您必须购买 5 件(所以当价格为每件 5 件时,6 件商品不是 30 而是 25,与 12、18、24 等相同......)
我该怎么做?
我认为它会是这样的:
if (amount % 6 == 0) {
}</code>
但是,如果我是正确的,那将有一次。
模运算符在这种情况下不起作用。因此,对于一个有效的解决方案。
int numberOfItems = 17; //however many there are
int discount = numberOfItems / 6;
double priceToPay = price * (numOfItems - discount);
通过享受折扣,int
除法后您将不会得到任何四舍五入或小数部分。
如果您有 6、12 等物品,使用模数只会给您折扣。如果你有 7 个项目呢?你不会得到任何折扣(它不能被 6 整除)!所以,它会是这样的:
int numOfItems = 6; //this will be different every time
//copy numOfItems because it will be modified
int temp = numOfItems;
double price = 5;
int discount = 0;
//While there are at least 6 items
while (temp >= 6) {
discount++; //discount one item
temp -= 6; //take away 6
}
//you have to pay for the number of items, but not the discounted items
double amountToPay = price * (numOfItems - discount);
这样,每次带走 6 件,您就不必支付 1 件商品的费用。