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