uva 147

时间:2023-03-09 14:59:43
uva 147

一个简单的dp   面值是5的倍数  将面值都除5   因为输出问题wa ....

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm> using namespace std; long long f[6020];
int coin[] = {1,2,4,10,20,40,100,200,400,1000,2000}; void dp(int n)
{
memset(f, 0, sizeof(f));
f[0] = 1;
for(int i = 0; i < 11; i++)
{
for(int j = coin[i]; j <= n; j++)
{
f[j] += f[j-coin[i]];
}
}
}
int main()
{
int a,b;
dp(6010);
while(scanf("%d.%d",&a,&b) == 2)
{
int n = a*100 + b;
if(n == 0)
break;
double ff = n/100.0;
printf("%6.2lf%17lld\n",ff,f[n/5]);
}
return 0;
}