码迷,mamicode.com
首页 > 其他好文 > 详细

Project Euler:Problem 28 Number spiral diagonals

时间:2015-09-23 14:50:07      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

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;
}




版权声明:本文博主原创文章,博客,未经同意不得转载。

Project Euler:Problem 28 Number spiral diagonals

标签:

原文地址:http://www.cnblogs.com/gcczhongduan/p/4832064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!