(Problem 28)Number spiral diagonals

Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows:

21 22 23 24 25
20  7   8   9  10
19  6   1   2  11
18  5   4   3  12
17 16 15 14 13

It can be verified that the sum of the numbers on the diagonals is 101.

What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral formed in the same way?

原题大意:

从数字1开始向右顺时针方向移动,可以得到如下的5×5的螺旋:

21 22 23 24 25
20  7   8   9  10
19  6   1  2  11
18  5   4   3  12
17 16 15 14 13

可以算出对角线上数字之和是101.        1001×1001的螺旋中对角线上数字之和是多少?

//(Problem 28)Number spiral diagonals 
// Completed on Thu, 25 Jul 2013, 14:31
// Language: C
//
// 版权所有(C)acutus   (mail: acutus@126.com) 
// 博客地址:http://www.cnblogs.com/acutus/

#include<stdio.h>
void countSum()
{
    int i=3;
    int sum=1;
    int n=(1001+1)/2-1;
    while(n--)
    {
        int t=i*i;
        sum+=(4*t-(i-1)*6);
        i=i+2;
    }
    printf("%d\n",sum);
}

int main()
{
    countSum();
    return 0;
}
Answer:
669171001
posted @ 2014-02-12 16:03  acutus  阅读(283)  评论(0编辑  收藏  举报
TOP