您的位置:首页 > 编程语言 > Go语言

Project Euler:Problem 28 Number spiral diagonals

2015-06-02 10:44 513 查看
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?

找规律。

右上角(2n+1)^2

左上角(2n+1)^2-(2n+1)+1

左下角(2n+1)^2-4*n

右下角(2n+1)^2-6*n

2n+1<=1001 n<=500

#include <iostream>
#include <string>
using namespace std;

int main()
{
	int n = 500;
	long long res = 1;
	for (int i = 1; i <= 500; i++)
	{
		
		int tmp = (2 * i + 1)*(2 * i + 1);
		res += tmp*4 - (2 * i + 1) + 1 - 4 * i - 6 * i;
	}
	cout << res << endl;
	system("pause");
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: