首页 > 解决方案 > 在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 个。我知道对此有一个非常简单的答案,但我就是不明白,谢谢大家。

标签: c#

解决方案


您必须使用余数并减去,直到余数变为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 ++;
}

推荐阅读