原创作品 转载请注明出处http://blog.youkuaiyun.com/always2015/article/details/45485111
这一道题目不是很难,主要是想到将老师的工资先从票面高的算起就没有问题了。有过程的描述我在代码的注释里面已经写得很清楚了,有疑问的话请给我留言。我的AC代码如下:
#include <iostream>
using namespace std;
int main(void)
{
int n,*input_money,total_num=0;
while(cin>>n&&n)
{
//位每个老师的工资开辟空间
input_money=new int[n];
for(int i=0; i<n; i++)
{
cin>>input_money[i];
/*钱币的种类有100 50 10 5 2 六种,先从高的比较,
这样需要的钱数最少
*/
if(input_money[i]/100>=1)
{
total_num+=input_money[i]/100;
input_money[i]=input_money[i]%100;//除去已用100块钱算的钱,还剩下的零钱赋值给input_money
}
if(input_money[i]/50>=1)
{
total_num+=input_money[i]/50;
input_money[i]=input_money[i]%50;//除去已用50块钱算的钱,还剩下的零钱赋值给input_money
}
if(input_money[i]/10>=1)
{
total_num+=input_money[i]/10;
input_money[i]=input_money[i]%10;//除去已用10块钱算的钱,还剩下的零钱赋值给input_money
}
if(input_money[i]/5>=1)
{
total_num+=input_money[i]/5;
input_money[i]=input_money[i]%5;//除去已用5块钱算的钱,还剩下的零钱赋值给input_money
}
if(input_money[i]/2>=1)
{
total_num+=input_money[i]/2;
input_money[i]=input_money[i]%2;//除去已用2块钱算的钱,还剩下的零钱赋值给input_money
}
if(input_money[i]/1>=1)
{
total_num+=input_money[i]/1;//最后只剩下一块钱来找
}
}
cout << total_num << endl;
//清零
total_num=0;
//释放空间
delete input_money;
}
return 0;
}