28 Number spiral diagonals - Project Euler +
来源:互联网 发布:手机网络短信 编辑:程序博客网 时间:2024/06/06 05:23
package xxx.xxx.xxx;
/*
* 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?
*/
public class NumberSpiralDiagonals {
private void compute(int length){
int middlepoint = length/2+1-1;
int i = 1;
int sum = 1;
System.out.println("("+middlepoint+","+middlepoint+")");
while(i<=length/2){
// sum = sum +((2*i+1)*(2*i+1)-6*i)+((2*i+1)*(2*i+1)-4*i)+((2*i+1)*(2*i+1)-2*i) +(2*i+1)*(2*i+1);
sum = sum +(2*i+1)*(2*i+1)*4-12*i;
i++;
}
System.out.println(sum);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long startTime = System.currentTimeMillis();
NumberSpiralDiagonals n = new NumberSpiralDiagonals();
n.compute(1001);
long endTime = System.currentTimeMillis();
System.out.println("execution time " + (endTime - startTime + "ms"));
}
}
/*
* 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?
*/
public class NumberSpiralDiagonals {
private void compute(int length){
int middlepoint = length/2+1-1;
int i = 1;
int sum = 1;
System.out.println("("+middlepoint+","+middlepoint+")");
while(i<=length/2){
// sum = sum +((2*i+1)*(2*i+1)-6*i)+((2*i+1)*(2*i+1)-4*i)+((2*i+1)*(2*i+1)-2*i) +(2*i+1)*(2*i+1);
sum = sum +(2*i+1)*(2*i+1)*4-12*i;
i++;
}
System.out.println(sum);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long startTime = System.currentTimeMillis();
NumberSpiralDiagonals n = new NumberSpiralDiagonals();
n.compute(1001);
long endTime = System.currentTimeMillis();
System.out.println("execution time " + (endTime - startTime + "ms"));
}
}
0 0
- Project Euler:Problem 28 Number spiral diagonals
- 28 Number spiral diagonals - Project Euler +
- PE 28 Number spiral diagonals
- (Problem 28)Number spiral diagonals
- projecteuler---->problem=28----Number spiral diagonals
- No_28:Number spiral diagonals
- Number spiral diagonals
- 欧拉工程第28题:Number spiral diagonals
- Problem 28 Number spiral diagonals (规律题)
- Project Euler:Problem 58 Spiral primes
- Project Euler - Problem 28
- Project Euler problem 28
- Project Euler 28
- project euler problem 28
- project euler 28
- Project Euler: Problem 17 Number letter counts
- 12 Highly divisible triangular number - Project Euler
- 25 1000-digit Fibonacci number - Project Euler
- 文件批量重命名
- C++ Primer 学习笔记_14_动态数组
- [转]内模式、模式、外模式、物理层、逻辑层、应用层
- [精]Oracle 11G数据库VMware虚拟机下载
- CSS自适应内容宽度示例
- 28 Number spiral diagonals - Project Euler +
- ArrayAdapter ,SimpleAdapter ,SimpleCursorAdapter 区别
- Ubuntu档案权限学习笔记
- QProcess start
- shell 判断式
- 关于Xilinx FSL总线的一些总结
- 【Android策略】Fragment实例化及通过setArguments解决 android.support.v4.app.Fragment$InstantiationException
- LeetCode Course Schedule II 拓扑排序
- eclipse-整合struts和spring-maven