从1开始,按顺时针顺序向右铺开的5 × 5螺旋数阵如下所示:
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
可以验证,该数阵对角线上的数之和是101。
以同样方式构成的1001 × 1001螺旋数阵对角线上的数之和是多少?
package EULER28;
/**
* Created by Administrator on 2016/10/12.
* 螺旋数阵对角线
*从1开始,按顺时针顺序向右铺开的5 × 5螺旋数阵如下所示:
* 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
* 可以验证,该数阵对角线上的数之和是101。
* 以同样方式构成的1001 × 1001螺旋数阵对角线上的数之和是多少?
* 1
* 1+2 1+2*2 1+2*3 1+2*4
* 1+2*4+4 1+2*4+4*2 1+2*4+4*3 1+2*4+4*4
* 1+2*4+4*4+6 1+2*4+4*4+6*2 1+2*4+4*4+6*3 1+2*4+4*4+6*4
* 按着规律算一下就好
*/
public class EULER28 {
public static void main(String[] s){
long sum = 1;
long befor = 1;
for (int i=1;i<501;i++){
sum += befor*4 + 2*i*10;
befor += 2*i*4;
}
System.out.print(sum);
}
}