九度OJ—题目1549:货币问题

来源:互联网 发布:金日十数据 编辑:程序博客网 时间:2024/04/30 10:02
题目描述:

已知有面值为1元,2元,5元,10元,20元,50元,100元的货币若干(可认为无穷多),需支付价格为x的物品,并需要恰好支付,即没有找零产生。
求,至少需要几张货币才能完成支付。
如,若支付价格为12元的物品,最少需要一张10元和一张2元,即两张货币就可完成支付。

输入:

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

输出:

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

样例输入:
101113
样例输出:
123
来源:
2014年王道论坛研究生机试练习赛(二)


#include <stdio.h> int main(){    int x,a,b,c,d,e,f,g;    while(scanf("%d",&x)!=EOF)    {        a=b=c=d=e=f=g=0;                 a=x/100;        x-=a*100;        b=x/50;        x-=b*50;        c=x/20;        x-=c*20;        d=x/10;        x-=d*10;        e=x/5;        x-=e*5;        f=x/2;        x-=f*2;        g=x/1;        x-=g*1;             printf("%d\n",a+b+c+d+e+f+g);    }      return 0;} /**************************************************************    Problem: 1549    User: vhreal    Language: C    Result: Accepted    Time:10 ms    Memory:912 kb****************************************************************/


0 0