这道题就是推公式 我们看测试数据的时候要谨慎 不能盲目的相信测试数据 也不能忽略测试数据的作用 例如这道题 要是聪明点的一看测试数据基本上就知道公式是什么了 省时省力 还不会错
任意两条线可以构成一个矩形 正方形也是 所以最后要减去
N+1 条边中选2条 N*(N+1)/2 几维的几次方
正方形的比较好想 就是 1^2+............+N^2;
#include<cstdio>
#include<cmath>
#define LL long long
int main()
{
LL N;
while(scanf("%lld",&N)!=EOF)
{
LL S2, R2, S3, R3, S4, R4;
S2 = R2 = S3 = R3 = S4 = R4 = 0;
for(LL i = 1; i <= N; i++)
{
S2 += i*i;
S3 += i*i*i;
S4 += i*i*i*i;
}
R2 = N*(N+1)*N*(N+1)/4 - S2;//在N+1个中选2个的维数的平方减去多余的正方形
R3 = N*(N+1)*N*(N+1)*N*(N+1)/8 - S3;
R4 = N*(N+1)*N*(N+1)*N*(N+1)*N*(N+1)/16 - S4;
printf("%lld %lld %lld %lld %lld %lld\n",S2,R2,S3,R3,S4,R4);
}
return 0;
}