思路:必须满足k1+2*k2+3*k3=n;
1、先确定k3;
2、然后k1+k2*2=n-k3*3
3、所有的k2又对应一个k1,k2的范围在0.........(n-3*k3)/2,
一共有(n-3*k3)/2+1种。
难点详解:满足的k3,对应一组k1,k2.所以for(i=0,3*i<n;i++)
因为一个k3对应(n-3*k3)/2+1种方法。
解题体会:发现数学中的一些推理太重要了,平时应该牢记一些解题方法,记住一些公式
关键:公式的推理,思路,
:ycyy
#include<stdio.h>
__int64 a[1000000];
int main()
{
__int64 n,sum,i;
while(scanf("%I64d",&n)!=EOF)
{
sum=0;
for(i=0;i*3<=n;i++)
sum+=(n-3*i)/2+1;
printf("%d\n",sum);
}
return 0;
}