package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
idx, beforeLastN, lastN := 0, 0, 1
return func() int {
if (idx == 0) {
idx++
return beforeLastN
}
if (idx == 1) {
idx++
return lastN
}
sum := beforeLastN + lastN
beforeLastN = lastN
lastN = sum
return sum
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
PHP 斐波纳契数
<?php
/*
Copyright (c) 2008, reusablecode.blogspot.com; some rights reserved.
This work is licensed under the Creative Commons Attribution License. To view
a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ or
send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California
94305, USA.
*/
// Get Fibonacci number
function fib($x)
{
$fibArray[0] = 0;
$fibArray[1] = 1;
for($i = 2; $i <= $x; $i++)
{
$fibArray[$i] = $fibArray[$i - 1] + $fibArray[$i - 2];
}
return $fibArray[$x];
}
?>