只是想仔细检查这段代码不会有任何错误,主要与我不确定的模数运算符有关。
问题是:
问题:编写一个 ACL 算法,给定物品的成本(小于或等于 1 美元),给出买家在交出 50 美分、20 美分、10 美分、5 美分和 1 美分硬币时的数量超过一美元。您必须尽量减少找零中的硬币数量。
我的解决方案是:
Algorithm coin_change
{
int cost, change, fifty, twenty, ten, five, one;
read(cost);
change = 100 - cost;
fifty = change / 50;
change = change % 50;
twenty = change / 20;
change = change % 20;
ten = change / 10;
change = change % 10;
five = change / 5;
change = change % 5;
one = change;
print(fifty, twenty, ten, five, one);
}
我不确定的主要事情是,例如,如果变化是 93 美分,这将变为 43 美分,然后降至 3 美分。现在的问题是“ change = change % 10
”当零钱是 3 美分时,零钱还等于 3 吗?希望这是有道理的。
提前致谢。