source code for "files/pe/pe_025.pl"
return to portfolio
- #!/usr/bin/perl
- use strict;
- use warnings;
- use bignum;
- sub round {
- my $n = shift;
- return int $n + .5 * ($n <=> 0);
- }
- sub fib
- {
- my $n = shift;
- my ($c1, $c2) = ((5+sqrt(5))/10, (-1+sqrt(5))/(2*sqrt(5)));
- my ($fi1,$fi2) = ((1+sqrt(5))/2, (1-sqrt(5))/2);
- return round($c1*$fi1**$n+$c2*$fi2**$n,1);
- }
- my ($last, $f, $k);
- $last = $f = 1;
- for ($k=2; length $f != 1000; $k++) {
- ($last, $f) = ($f, $f+$last);
- }
- print $k;