フィボナッチ数列を100項まで計算しようとするとunsigned long longでもたりないらしい

タイトルのとおり。

実行結果:

takatoh@nightschool $ ./fib 100
1
1
2
3
5
8
13
21
34

(中略)

4660046610375530309
7540113804746346429
12200160415121876738
1293530146158671551
13493690561280548289
14787220707439219840
9834167195010216513
6174643828739884737
16008811023750101250
3736710778780434371

最後のほうで桁が少なくなったり、明らかにおかしな数値になってしまう。

試しに Ruby でやってみた。

takatoh@nightschool $ ruby fib.rb 100
1
1
2
3
5
8
13
21
34

(中略)

4660046610375530309
7540113804746346429
12200160415121876738
19740274219868223167
31940434634990099905
51680708854858323072
83621143489848422977
135301852344706746049
218922995834555169026
354224848179261915075

ちゃんと計算できてる! Ruby すげー!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です