九度1549:货币问题

题目描述:
已知有面值为1元,2元,5元,10元,20元,50元,100元的货币若干(可认为无穷多),需支付价格为x的物品,并需要恰好支付,即没有找零

产生。
求,至少需要几张货币才能完成支付。
如,若支付价格为12元的物品,最少需要一张10元和一张2元,即两张货币就可完成支付。


输入:
输入包含多组测试数据,每组仅包含一个整数p(1<=p<=100000000),为需支付的物品价格。


输出:
对于每组输入数据,输出仅一个整数,代表最少需要的货币张数。


样例输入:
10
11
13
样例输出:
1
2
3
来源:
2014年王道论坛研究生机试练习赛(二)

 

#include<stdio.h>

int main()
{
    int i,n,sum;
    while(scanf("%d",&n)!=EOF)
    {
       sum=0;i=0;
       if(n>=100)
       {
          sum+=n/100;
          n-=100*(n/100);
       }
       if(n>=50&&n<100)
       {
          sum+=n/50;
          n-=50*(n/50);
       }
       if(n>=20&&n<50)
       {
          sum+=n/20;
          n-=20*(n/20);
       }
       if(n>=10&&n<20)
       {
          sum+=n/10;
          n-=10*(n/10);
       }
       if(n>=5&&n<10)
       {
          sum+=n/5;
          n-=5*(n/5);
       }
       if(n>=2&&n<5)
       {
          sum+=n/2;
          n-=2*(n/2);
       }
       if(n>=1&&n<2)
       {
          sum+=n/1;
          n-=1*(n/1);
       }
       printf("%d\n",sum);
    }
    return 0;
}


你可能感兴趣的:(C++,C语言,ACM,OJ,九度,货币问题,题目1549)