-6

我正在做一个系统。我想要的是,对于每 6 件商品,您必须购买 5 件(所以当价格为每件 5 件时,6 件商品不是 30 而是 25,与 12、18、24 等相同......)

我该怎么做?

我认为它会是这样的:

if (amount % 6 == 0) {

    }</code>

但是,如果我是正确的,那将有一次。

4

2 回答 2

1

模运算符在这种情况下不起作用。因此,对于一个有效的解决方案。

int numberOfItems = 17; //however many there are
int discount = numberOfItems / 6;

double priceToPay = price * (numOfItems - discount);

通过享受折扣,int除法后您将不会得到任何四舍五入或小数部分。

于 2013-03-24T00:02:11.100 回答
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 件商品的费用。

于 2013-03-23T23:53:43.833 回答