华东交通大学2015年ACM“双基”程序设计竞赛1002

Problem B

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 698   Accepted Submission(s) : 342

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

阿黄是一个小气的银行家,他有了一个银行,出版了4种不同面额的货币,
分别是20,10,5,1这四种面额。之所以说他小气是因为每次别人来他家
银行取钱他就不开心。所以他每次都只给最少的钞票数给别人,总金额
是不变的。现在有很多人来取钱,黄又不开心了,请你计算出每个来取钱的
人阿黄应该给他多少张钞票。

Input

多组样例,每组给出一个n,n为要取出的金额(n为正整数)。(n<=10^5&&组数小于等于10^5)

Output

每组样例输出一个答案(钞票数)。

Sample Input

1

Sample Output

1

Author

moonlike
 
这个不用多说了吧,直接贪心就好
#include<stdio.h>
//#include<bits/stdc++.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<sstream>
#include<set>
#include<queue>
#include<map>
#include<vector>
#include<algorithm>
#include<limits.h>
#define inf 0x3fffffff
#define INF 0x3f3f3f3f
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define ULL unsigned long long
using namespace std;
int main()
{
    int n,a,b,c;
    while(cin>>n)
    {
        a=n%20;
        b=a%10;
        c=b%5;
        cout<<n/20+a/10+b/5+c<<endl;
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/yinghualuowu/p/5005269.html