m0_57947506 2021-06-03 09:13 采纳率: 66.7%
浏览 46

大佬们,救救孩子吧[face]emoji:003.png[/face] 工厂给工人发工资,当确定实发

大佬们,救救孩子吧[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#
    
    
    

    ```

    评论 编辑记录

报告相同问题?