uva 147 - Dollars

来源:互联网 发布:python后端开发 编辑:程序博客网 时间:2024/05/18 02:57

链接:点击打开链接

和uva 674 差不多一样,就是这个涉及精度,那个dp[i]数组得用long long型,这个的注意,注意精度基本就是一个简单的完全背包问题,我那个钱币种类露掉一个,害的我WA几次。。。

#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;long long dp[30010];int main(){int i,j,m;int a[11]={5,10,20,50,100,200,500,1000,2000,5000,10000};double n;while(~scanf("%lf",&n)){if(n<1e-9)break;m=(int)(n*100+0.5f);memset(dp,0,sizeof(dp));dp[0]=1;for(i=0;i<11;i++) for(j=0;j<=m;j++)   if(j>=a[i])    dp[j]+=dp[j-a[i]];    printf("%6.2lf%17lld\n",n,dp[m]);}return 0;}