【问题标题】:using c mod operator to work out coin denominations使用 c mod 运算符计算硬币面额
【发布时间】:2013-04-16 17:30:11
【问题描述】:

我被教导如何使用 c 中的 mod 运算符来计算硬币面额的找零,例如:如果给定 22 美元,需要计算出 22 美元中有多少 10 美元、5 美元、2 美元和 1 美元那么:

22/10 = 2 of $10
22%10 = 2
Therefore since only $2 left:
2/5 = 0
2%5 = 2
2/2 = 1 of $2
2%2 = 0 
So 2 $10 and 1 $2.

我的问题是,我究竟如何才能将其编写为代码,以便它适用于任何给定数量的更改?我仍然是初学者,所以我遇到了一些困难。感谢您的帮助,谢谢。

【问题讨论】:

  • 你尝试过什么吗?如果您发布您的代码,我们会为您提供帮助
  • 关于 SO 的有用答案:http://stackoverflow.com/a/12433941/952747
  • 好的,我会尝试一下,我还查看了它是用 c++ 编写的链接,我无法理解,但还是谢谢

标签: c operator-keyword modulus


【解决方案1】:

所以如果一张纸币/硬币的最高价值是 10 美元(如果这听起来微不足道,很抱歉,但我不是美国公民):

int vals[] = { 10, 5, 2, 1 };
int amount = 22;

for (int i = 0; i < sizeof(vals) / sizeof(vals[0]); i++) {
    printf("%d piece of $%d\n", amount / vals[i], vals[i]);
    amount %= vals[i];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多