Problem 25
フィボナッチ数列で 1000桁を越える一番初めの数字は何かという
問題。楽勝じゃんって思ってやったら 30桁ぐらいで答えがでなく
なって調べてみたら、整数値に収まってなかった。なのでbigintを使う。
#!/usr/bin/perl use strict; use warnings; use bigint; print "Answer is ", p25(1000), "\n"; # Answer is 4782 sub p25 { my ($digit) = @_; my ($prev1, $prev2) = (1, 1); my $count = 2; while (1) { $count++; my $nth = $prev1 + $prev2; last if (length $nth) >= $digit; ($prev1, $prev2) = ($nth, $prev1); } return $count; }