24 lines
496 B
Perl
24 lines
496 B
Perl
#!/usr/bin/perl
|
|
use warnings;
|
|
use strict;
|
|
|
|
sub fibonacci3 {
|
|
my ($count, $aref) = @_;
|
|
|
|
unless ($aref) {
|
|
# first call - initialize
|
|
$aref = [1,1];
|
|
$count -= scalar(@{$aref});
|
|
}
|
|
|
|
if ($count--) {
|
|
my $next = $aref->[-1] + $aref->[-2];
|
|
push @{$aref}, $next;
|
|
@_ = ($count, $aref);
|
|
goto &fibonacci3;
|
|
} else {
|
|
return wantarray?@{$aref}:$aref->[-1];
|
|
}
|
|
}
|
|
|
|
print scalar(fibonacci3(1000)), "\n"; |