Money
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
小明上小学了,妈妈要教他怎么算钱了,妈妈给小明三种钱币,分别为一角、两角、五角的,现在妈妈给小明n块钱,要求小明把这n块钱换成由一角、两角、五角组成的,可是小明不知道到底存在多少种换法,聪明的你能帮助他吗?
-
输入
- 第一行有一个整数t(0<t<100),接下来有t组数据,每组有一个整数n(0<n<100)。 输出
- 对于每组数据,输出总共有多少种换法。 样例输入
-
2 1 2
样例输出
-
10 29
来源
和hdu1284思路一样,不过这个范围较小不需要打表也能过.
Ac-code
#include<cstdio> #include<cstring> int c1[11000],c2[11000]; int main() { int n,i,j,k,a[4]={0,1,2,5},t; scanf("%d",&t); while(t--) { scanf("%d",&n); n=10*n; for(i=0;i<=n;i++) c1[i]=1,c2[i]=0; for(i=2;i<=3;i++) { for(j=0;j<=n;j++) { for(k=0;k+j<=n;k+=a[i]) { c2[k+j]+=c1[j]; } } for(j=0;j<=n;j++) c1[j]=c2[j],c2[j]=0; } printf("%d\n",c1[n]); } return 0; }