私はシステムを作っています。私が欲しいのは、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つのアイテムにお金を払う必要はありません。