题意:输出组合的方法种数,将单位同一就可以了
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN = 30005;
long long dp[MAXN];
int money[11] = {5,10,20,50,100,200,500,1000,2000,5000,10000};
int main(){
memset(dp,0,sizeof(dp));
dp[0] = 1;
for (int i = 0; i < 11; i++)
for (int j = money[i]; j <= MAXN; j++)
dp[j] += dp[j - money[i]];
int a,b;
while (scanf("%d.%d",&a,&b) != EOF && a + b){
int ans = a * 100 + b;
double tmp = a + b * 0.01;
printf("%6.2lf%17lld\n",tmp,dp[ans]);
}
return 0;
}