in reply to Explain Fibonacci one-liner ??
A Perl implementation of a more traditional and MUCH faster approach is below. Perl allows very obscure looking code to be written, but why do it?
#!/usr/bin/perl -w use strict; foreach (1..15) { print fibonacci($_), " "; } # prints: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 sub fibonacci { my $number = shift; my $cur_num = 1; my $prev_num = 1; my $sum; return 1 if ($number == 1 || $number == 2); # to get Op's output, supress the above by this: # return "" if ($number == 1 || $number == 2); # or of course just start the sequence at a different number $number -= 2; while ($number--) { $sum = $cur_num + $prev_num; $prev_num = $cur_num; $cur_num = $sum; } return $sum; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Explain Fibonacci one-liner ??
by JavaFan (Canon) on May 10, 2010 at 18:27 UTC |