POJ 3086 Triangular Sums (ZOJ 2773)

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;
}


你可能感兴趣的:(编程,C++,ACM,ZOJ,poj)