のてすきあ − 完全独習非プログラマー −

Haskell で Project Euler を解く素人遊び

Problem 55

例えば47に対して47:→47+74=121 のように、反転した数を足すことで新しい数を得る操作を50回繰り返してもそれまでの間に一度も回分数を踏まないものが、10,000より小さい数の中にいくつあるか調べる。

 特に悩むところはない。与えられた手続きに従って数を評価すれば良い。手続きの繰り返し数をカウントしておかないと行けないので、出力をリストにするか、関数にカウンターを抱き合わせるかだが、リストにすると最後にlengthで処理する分だけ手間が増える気がしたので、カウンタを使用してみた。

 

 

だんだん難しくなっている☆