Java每6个删除1

时间:2013-03-23 23:24:42

标签: java

我正在制作一个系统。 我想要的是,每6件物品你必须购买5件(所以当每件物品的价格是5件时,6件不是30件而是25件,相同的是12件,18件,24件等......)

我该怎么做?

我认为会是这样的:

if (amount % 6 == 0) {

    }</code>

但是,如果我是正确的话,那将会得到一次。

2 个答案:

答案 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件物品。