http://poj.org/problem?id=3086
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1773
让你计算两个递推式:
T(n)=sum[1……n]
W(n) = SUM[k = 1…n; k * T(k + 1)]
思路:
直接计算即可。
#include<cstdio>
const int MAXN=302;
int T[MAXN]={0} , w[MAXN]={0};
int main()
{
for(int i=1;i<MAXN;i++)
{
T[i]= (i+1)*i;
T[i]>>=1;
}
for(int k=1;k<MAXN;k++)
{
w[k]=w[k-1]+ k * T[k+1];
}
int N;
scanf("%d",&N);
for(int ri=1;ri<=N;ri++)
{
int n;
scanf("%d",&n);
printf("%d %d %d\n",ri,n,w[n]);
}
return 0;
}