#!/usr/bin/perl -w

my $phi = (1+sqrt(5))/2;

print "phi = $phi\n";

print "Número de Fibonacci N: ";
chomp ($n =<STDIN>);
die "Mayor o igual que 1" if $n <1;



$fib = (1/sqrt(5))*($phi**$n - (-1/$phi)**$n);

print "El término previsto es $fib\n";

use bigint;
use Memoize qw(memoize);

memoize ( "fib" ); 

print "El término real es     ", fib($n) , "\n";

# $a1 = 0;   originalmente 1
# $a2 = 1;
 

sub fib {
    my $x = shift;
    return $x if ($x<2);
    return fib($x-1) + fib($x-2);
}

