我正在制作一个系统。 我想要的是,每6件物品你必须购买5件(所以当每件物品的价格是5件时,6件不是30件而是25件,相同的是12件,18件,24件等......)
我该怎么做?
我认为会是这样的:
if (amount % 6 == 0) {
}</code>
但是,如果我是正确的话,那将会得到一次。
答案 0 :(得分:1)
模数运算符在这种情况下不起作用。 所以为了一个有效的解决方案。
int numberOfItems = 17; //however many there are
int discount = numberOfItems / 6;
double priceToPay = price * (numOfItems - discount);
通过将折扣设为int
,您不会在分割后获得任何舍入或小数部分。
答案 1 :(得分:0)
如果你有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件物品。