フィボナッチ整列を求めるようなサンプルコード
とある事情で書いたけど、本当に必要だったのは違うものだった。
まぁせっかくなので、ブログに書く。
use strict; use warnings; use Math::BigInt; { my @fibonacci_number = (); sub fibonacci { my $num = shift; unless ( $fibonacci_number[$num] ) { if ( $num <= 1 ) { $fibonacci_number[$num] = Math::BigInt->new( $num ); } else { $fibonacci_number[$num] = fibonacci( $num-1 ) + fibonacci( $num-2 ); } } return $fibonacci_number[$num]; } } print fibonacci( 1 ), "\n"; print fibonacci( 10 ), "\n"; print fibonacci( 100 ), "\n";
桁が大きすぎると、指数表記されてしまうのでMath::BigInt使いました。