Ray's playground

 

Project Euler Problem 28

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 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int sum = 1;
 7     for(int i=3; i<=1001; i=i+2)
 8     {
 9         //top-right
10         sum += i*i;
11 
12         //top-left
13         sum += i*i-i+1;
14 
15         //bottom-left
16         sum += i*i-2*i+2;
17 
18         //bottom-right
19         sum += i*i-3*i+3;
20     }
21 
22     cout << sum << endl;
23     cin.get();
24     return 0;
25 }

posted on 2011-03-22 10:03  Ray Z  阅读(200)  评论(0编辑  收藏  举报

导航