九度OJ 1549 货币问题 (模拟)

题目1549:货币问题

时间限制:1 秒

内存限制:128 兆

特殊判题:

提交:860

解决:476

题目描述:

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

输入:

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

输出:

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

样例输入:
10
11
13
样例输出:
1
2
3
#include<stdio.h>
int p;
int main(int argc, char *argv[])
{
    while(~scanf("%d",&p)){
        int cnt=0;
        cnt+=p/100;
        p%=100;
        cnt+=p/50;
        p%=50;
        cnt+=p/20;
        p%=20;
        cnt+=p/10;
        p%=10;
        cnt+=p/5;
        p%=5;
        cnt+=p/2;
        p%=2;
        cnt+=p%2;
        printf("%d\n",cnt);
    }
    return 0;
}
 
/**************************************************************
    Problem: 1549
    User: kirchhoff
    Language: C
    Result: Accepted
    Time:20 ms
    Memory:912 kb
****************************************************************/



你可能感兴趣的:(九度OJ,1549)