http://acm.hdu.edu.cn/showproblem.php?pid=1284
题意:求用1,2,3组合成N有多少种情况。
思路:一共有3种面值——因为有1分的存在,不管2分和3分的怎么拼都能凑成恰好的钱数,所以可以不考虑1分的(只要2分和5分组合小于等于钱数即可);有几个2分的一共有(钱数/2+1)种情况,所以现在讨论用几个3分的就可以了;3分的情况用一个for循环从0到钱数/3一扫就可以了。计数器计数。
#include<stdio.h>
int main()
{
int n,i,j,m,cnt;
while(scanf("%d",&n)==1)
{
cnt=0;
for(i=0;i<=n/3;i++)
{
m=n;
cnt+=(m-3*i)/2+1;
}
printf("%d\n",cnt);
}
return 0;
}