【题目】
【思路】类似于贪心算法,将纸币值在数组中降序排列,每次选择最大的尝试,每尝试一次就将薪水对取的纸币取余,直到刚好整除为主,该算法在代码中封装成了一个函数getCount()。
【代码】AC的C++代码如下:
#include <iostream>
using namespace std;
int money[6] = {100,50,10,5,2,1};
int getCount(int money[],int salary)
{
int count = 0;
for (int i = 0;i < 6;i++)
{
if (salary == 0)
break;
count += salary / money[i];
salary %= money[i];
}
return count;
}
int main()
{
int n,salary;
int count;
while (cin >> n && n != 0)
{
count = 0;
while (n--)
{
cin >> salary;
count += getCount(money,salary);
}
cout << count << endl;
}
return 0;
}