first commit

This commit is contained in:
douboer
2025-09-17 16:08:16 +08:00
parent 9395faa6b2
commit 3ff47c11d5
1318 changed files with 117477 additions and 0 deletions

36
perl/Examples/Chap5/fib-9 Normal file
View File

@@ -0,0 +1,36 @@
###
### fib9
###
## Chapter 5 section 4.3.1
sub fib {
my $n = shift;
my ($s1, $return);
my $BRANCH = 0;
my @STACK;
while (1) {
if ($n < 2) {
$return = $n;
} else {
if ($BRANCH == 0) {
push @STACK, [ $BRANCH, 0, $n ];
$n -= 2;
next;
} elsif ($BRANCH == 1) {
push @STACK, [ $BRANCH, $return, $n ];
$n -= 1;
$BRANCH = 0;
next;
} elsif ($BRANCH == 2) {
$return += $s1;
}
}
return $return unless @STACK;
($BRANCH, $s1, $n) = @{pop @STACK};
$BRANCH++;
}
}