Problem : 找钱问题

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:26   815   0

Problem : 找钱问题

Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 12397 Solved: 3423

Description

买火车票时经常会碰到找钱问题。售票员手中有50、20、10、5、1元的钱币,你知道怎么找钱才能使找回的零钱张数最少吗?

Input

多组测试数据,输入需要找钱的钱数

Output

输出按下面格式: 第一行输出"change:",然后是你要找的钱 以下几行按面值从大到小输出要找的张数,格式如下:50 yuan: 1,如果1张也没有就不需要输出

Sample Input

76

Sample Output

change:76
50 yuan: 1
20 yuan: 1
5 yuan: 1
1 yuan: 1

HINT


这道题要审题。题目中是有10元纸币的。然后样例是因为0张不输出。另外在多次尝试之后题目的意思输入0的时候change:0还是要的,因为题目要第一行输出change:


代码如下:

#include<stdio.h>
int main(void)
{
int sum1,sum2,sum3,sum4,sum5,ch,i;
while(scanf("%d",&ch)!=EOF)
{
sum1=sum2=sum3=sum4=sum5=0;
if(ch==0)
printf("change:%d\n",ch);
else if(ch!=0)
{
printf("change:%d\n",ch);
for(i=0; ;i++)
{
if(ch>=50)
{sum1++;ch=ch-50;}
else if(ch>=20)
{
sum2++;ch=ch-20;
}
else if(ch>=10)
{
sum5++;ch=ch-10;
}
else if(ch>=5)
{
sum3++;ch=ch-5;
}
else if(ch>=1)
{
sum4++;ch=ch-1;
}
else if(ch==0)
break;
}
if(sum1!=0)
printf("50 yuan: %d\n",sum1);
if(sum2!=0)
printf("20 yuan: %d\n",sum2);
if(sum5!=0)
printf("10 yuan: %d\n",sum5);
if(sum3!=0)
printf("5 yuan: %d\n",sum3);
if(sum4!=0)
printf("1 yuan: %d\n",sum4);
}
}
return 0;
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP