*[[Problem 28:http://projecteuler.net/problem=28]] 「螺旋状に並んだ数の対角線」 [#a6734b39]

1から初めて右方向に進み時計回りに数字を増やしていき, 5×5の螺旋が以下のように生成される:

|COLOR(red):21| 22| 23| 24|COLOR(red): 25|
|20|COLOR(red):  7|  8|COLOR(red):  9| 10|
|19|  6|COLOR(red):  1|  2| 11|
|18|COLOR(red):  5|  4|COLOR(red):  3| 12|
|COLOR(red):17| 16| 15| 14|COLOR(red): 13|

両対角線上の数字の合計は101であることが確かめられる.

1001×1001の螺旋を同じ方法で生成したとき, 対角線上の数字の和はいくつか?
 
1   #!/bin/sh
2   
3   seq 1 1001 \
4   | # 自然数1~1001の生成
5   awk 'NR==1{print $0; next} NR%2!=0{for(i=0;i<=3;i++){print $0*$0-($0-1)*i}}' \
6   | # 1と、1以外の奇数に基づいた対角成分の出力
7   awk '{s+=$0} END{print s}'
8     # 和の算出

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS