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
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; }
相关文章推荐
- Altium designer10---PCB添加Logo
- go学习笔记:1.基本概念
- Google-Guava-EventBus源码解读
- netty 的 Google protobuf 开发
- poj 3623 Best Cow Line, Gold(贪心)
- String hash functions
- Go语言2-基础类型及使用
- Google Code Jam Round2 A,B题解
- Go随机数
- Go 只读/只写channel
- go os/exec执行外部程序
- Go signals 信号
- Go 环境变量相关操作
- Go命令行参数解析flag包
- setjmp和longjmp goto应用
- 1.2 reverse a C-Style String
- 解決google在scroll裡左右拖動的問題
- GoogleCodeJam2015第二轮
- Go的pprof使用
- Golang Channel用法简编