找零钱
题目描述
我们知道人民币有 1、2、5、10、20、50、100 这几种面值。 现在给你 n (1≤n≤250)元,让你计算换成用上面这些面额表示且总数不超过 100 张,共有几种。 比如 4 元,能用 4 张 1 元、2 张 1 元和 1张 2 元、2 张 2 元三种表示方法。
输入
输入有多组,每组一行,为一个整数 nnn。
输入以 0 结束。
输出
输出该面额有几种表示方法。
输入输出样例
样例输入 #1
1
4
0
样例输出 #1
1
3
#include<bits/stdc++.h> using namespace std; int n,m,f[255][101],a[7]={1,2,5,10,20,50,100};//数组一定要多开哦 int main() { f[0][0]=1; for(int i=0;i<7;i++) for(int j=a[i];j<=250;j++) for(int k=1;k<=100;k++) f[j][k]+=f[j-a[i]][k-1]; int ans[1000]={0}; for(int i=1;i<=250;i++) for(int j=0;j<=100;j++) ans[i]+=f[i][j]; while(cin>>n&&n) cout<<ans[n]<<endl; return 0; }

浙公网安备 33010602011771号