Problem 28
コンテンツ
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 both diagonals is 101.
What is the sum of both diagonals in a 1001 by 1001 spiral formed in the same way?
ぴょんぴょんはねるイメージで作った。ぴょんぴょんを合成しまくるためか
stack space overflow
関数が多すぎるからか?
少し工夫してみたが・・・
あまり変わらない。
import Data.List jump n (xs,ys) = let (z:zs) = drop n ys in (z:xs,zs) jumps' n =foldl1 (.) . replicate 4 $ jump n jumps lim=foldl (flip ($)) ([],[1..]). unfoldr j $ where j p | p > lim = Nothing | p== = Just(jump ,1) | p > = Just(jumps' p,p+2) p028 n = fst$jumps n main = print.sum$p028 999
作成者 Toru Mano
最終更新時刻 2023-01-01 (c70d5a1)