フィボナッチ数

プログラマの数学」を読んでいて、再帰のところでフィボナッチ数列が出てきたので、フィボナッチ数を求めるプログラムをPerlで書いてみました。
フィボナッチ数については、フィボナッチ数 - Wikipediaを参照してください。

#!/usr/bin/perl                                                                                                                                                                

use strict;
use warnings;

sub fibo {
    my $n = shift;
    my $fibo;

    if ($n == 0) {
        $fibo = 0;
    } elsif ($n <= 2) {
        $fibo = 1;
        return $fibo;
    } else {
        $fibo = &fibo($n - 1) + &fibo($n - 2);
        return $fibo
    }
}

my $n = shift;
die "invalid value $n\n" if ($n < 0);
print &fibo($n), "\n";

__END__

プログラマの数学」にでてくる「増えていく生物」問題(P.159)を、上記プログラムを使って解いてみます。

$ ./fibonacci.pl 11
89

11日目には、全部で89匹になります。
あらためて、フィボナッチ数列って面白い数列だなぁと思いました。