大佬们,救救孩子吧[face]emoji:003.png[/face]
工厂给工人发工资,当确定实发工资数额后,自动确定发多少张100元、50元、10元51元的钞票。编写函数,输出实发工资总额和所需各种钞票的总数目(要求发的总张数最少?
1条回答 默认 最新
A_nanda 2024-04-29 15:39关注我大概讲一下思路,首先要确定张数最少,意思就是能用大钞不用小钞,根据这个用你输入的数据先除以100,看是多少,如果没有余数就是这个数;
如果有余数,就用余数除以50,在计算50的张数;依次类推到5元,1元;int getCount(int salary) { int count100 = salary / 100; salary = salary % 100; int count50 = salary / 50; salary = salary % 50; int count10= salary / 10; salary = salary % 10; int count5 = salary / 5; salary = salary % 5; int count1 = salary ; return count100 + count50 + count10 + count5 + count1;}代码进一步优化
List list = new List { 100, 50, 10, 5, 1 };
int count = getCount(4621, list);
int getCount(int salary, List list)
{
int temp = 0;int sum = 0;
for (int i= 0;i < list.Count;i++)
{
temp = salary / list[i];
sum += temp;
if (salary % list[i] != 0)
salary = salary % list[i];
}
return sum;
}```c#```
解决 无用评论 打赏 举报 编辑记录