Problem : 找钱问题

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值