c# - 在c#中制作公式以将美元金额转换为面额
问题描述
我正在制作一个程序,将任何输入金额转换为二十、十、五和一的面额。这是我遇到的问题:
int twenties = dollar/20;
int tens = twenties/2;
int fives = tens/2;
int ones = fives/5;
美元是输入金额,二十多岁的表达似乎是唯一正确的。例如:我输入 161,结果 161 等于 8 个 20、4 个 10、2 个 5 和 0 个。但它应该会出现,因为 161 等于 8 个 20、0 个 10、0 个 5 和 1 个。我知道对此有一个非常简单的答案,但我就是不明白,谢谢大家。
解决方案
您必须使用余数并减去,直到余数变为0;
int amount = 161, temp = 0;
int[] denomination = { 20, 10, 5, 1 }; // you can use enums also for
// readbility
int[] count = new int[denomination.Length];
while (amount > 0)
{
count[temp] = amount / denomination[temp];
amount -= count[temp] * denomination[temp];
temp ++;
}
推荐阅读
- python - python ThreadPoolExecutor 在我得到结果时关闭所有线程
- android - 我刚刚安装了 Flutter、Android Studio 和 VS CODE,但我无法让 Flutter Doctor 消除以下错误-
- javascript - 如何在获取输出信息时使 Zapier 代码步骤失败
- flutter - 如何为文本小部件的背景颜色添加填充
- mvvm - 如何从 StackLayout DataTemplateSelector 视图导航?
- ruby - 在 ruby 反向字符串中不影响字符串中的数字并且不要使用正则表达式
- c - 可以取消引用比较等于有效指针的元素指针吗?
- python - 使用 mahotas 库中的 .features.haralick fiuction 时出错
- sql - 基于分区添加列 - Oracle
- dart - 如何从运行时类型(Type)转到绑定类型参数(T)?