ZOJ Monthly, January 2014 E Diagonal (浙江大学月赛)
千万不要误以为是螺旋表。。。因为螺旋表不是最大的。。而应该是下面这样的。
6 | 5 | 4 | 3 |
7 | 16 | 1 | 2 |
8 | 15 | 14 | 13 |
9 | 10 | 11 | 12 |
所以由最大的算起,从n*n起,接着n*n-2,n*n-4,n*n-6共n-1个。。。。而最小的那个数要另算,由1 ,2, 3, 6 ,9。。。等得规律(n-1)*n/2+1-(n-1)/2。。
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<iostream>
using namespace std;
int a[1001][1001];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int sum=0;
sum=(n-1)*n/2+1-(n-1)/2;
for(int i=0;i<n-1;i++)
{
sum+=n*n-2*i;
}
printf("%d\n",sum);
}
return 0;
}