题目:
作为程序猿,最盼望的日子就是每月的9号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵
但是对于公司财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小李最近就在考虑一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位员工发工资的时候都不用员工找零呢?
这里假设程序猿的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。
错误率50%代码:
#include <iostream>
#include <string>
using namespace std;
//100 50 10 5 2 1
int main ()
{
int n;
int sum=0;
while(cin>>n)
{
if(n==0)
break;
int gong[n];
for(int i=0;i<n;i++)
cin>>gong[i];
for(int i=0;i<n;i++)
{
if(gong[i]/100)
{
sum=sum+gong[i]/100;
gong[i]=gong[i]%100;
}
if(gong[i]/50)
{
sum=sum+gong[i]/50;
gong[i]=gong[i]%50;
}
if(gong[i]/10)
{
sum=sum+gong[i]/10;
gong[i]=gong[i]%10;
}
if(gong[i]/5)
{
sum=sum+gong[i]/5;
gong[i]=gong[i]%5;
}
if(gong[i]/2)
{
sum=sum+gong[i]/2;
gong[i]=gong[i]%2;
}
sum=sum+gong[i];
}
cout<<sum;
}
return 0;
}
正确代码:
#include <iostream>
#include <string>
using namespace std;
//100 50 10 5 2 1
int main ()
{
int n;
int sum=0;
int temp[6]={100,50,10,5,2,1};
while(cin>>n)
{
if(n==0)
break;
int pay;
sum=0;
for(int i=0;i<n;i++)
{
cin>>pay;
for(int j=0;j<6;j++)
{
sum=sum+pay/temp[j];
pay=pay%temp[j];
}
}
cout<<sum<<endl;
}
return 0;
}