[cpp]
描述:可惡的精度問題,真讓人受不了了了了了……
#include <cstdio>
long long s[6010];
int v[13]= {1,2,4,10,20,40,100,200,400,1000,2000};
void solve()
{
s[0]=1;
for(int i=0; i<11; i++)
for(int j=v[i]; j<6010; j++)
s[j]+=s[j-v[i]];
s[6009]=0;
}
int main()
{
int n;
solve();
double x;
// freopen("a.txt","r",stdin);
while(scanf("%lf",&x)!=EOF)
{
n=(x*100+0.5);
if(!n) break;
if(n%5!=0) printf("%6.2lf%17lld\n",x,s[6009]);
else printf("%6.2lf%17lld\n",x,s[n/5]);
}
return 0;
}
描述:可惡的精度問題,真讓人受不了了了了了……
#include <cstdio>
long long s[6010];
int v[13]= {1,2,4,10,20,40,100,200,400,1000,2000};
void solve()
{
s[0]=1;
for(int i=0; i<11; i++)
for(int j=v[i]; j<6010; j++)
s[j]+=s[j-v[i]];
s[6009]=0;
}
int main()
{
int n;
solve();
double x;
// freopen("a.txt","r",stdin);
while(scanf("%lf",&x)!=EOF)
{
n=(x*100+0.5);
if(!n) break;
if(n%5!=0) printf("%6.2lf%17lld\n",x,s[6009]);
else printf("%6.2lf%17lld\n",x,s[n/5]);
}
return 0;
}