题目内容:
为顾客找零钱时,希望选用的纸币张数最少。例如73元,希望零钱的面值为五十元1张,二十元1张,一元3张。设零钱面值有五十元、二十元、十元、五元和一元,请编写程序,用户输入100以下的数,计算找给顾客的各面值的纸币张数,数据间以空格隔开。
输入格式:
一个小于100、大于等于0的整数。
输出格式:
5个整数,数据间用一个英文空格分隔。
int n,a,b,c,d,e,sum;
cout<<"请输入总额"<<endl;
cin>>n;
a=n/50;
b=(n-a*50)/20;
c=(n-a*50-b*20)/10;
d=(n-a*50-b*20-c*10)/5;
e=(n-a*50-b*20-c*10-d*5)/1;
cout<<"50元的有"<<a<<"张"<<endl;
cout<<"20元的有"<<b<<"张"<<endl;
cout<<"10元的有"<<c<<"张"<<endl;
cout<<"5元的有"<<d<<"张"<<endl;
cout<<"1元的有"<<e<<"张"<<endl;
sum=50*a+20*b+10*c+5*d+1*e;
if(sum=n)
{
cout<<"正确" <<endl;
}
else
{
cout<<"错误"<<endl;
}
解析:首先从50开始,n中有几个50,同时把数值存给a;然后判断20、10、5、1;最后有一个校验的,如果abcde的和恰好等于n,则提示正确,否则提示错误。