就俩公式。自己推一下就好了。
注意,计算t的时候,上界要至少算到301。。。因为计算w的时候,需要用到t[301]。这点WA了下。
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;
int t[310],w[310];
int main()
{
int ncases,n,i,ind = 1,c;
for(i=1; i<=310; i++)
{
t[i] = i*(i+1)/2;
}
w[1] = t[2];
for(i=2; i<=300; i++)
{
w[i] = w[i-1]+i*t[i+1];
}
scanf("%d",&ncases);
while( ncases-- )
{
scanf("%d",&n);
printf("%d %d %d/n",ind++,n,w[n]);
}
return 0;
}