C++ 递归
int Fibonacci(int n)
{
if(n==1||n==2) //1和2不用计算直接返回1
return 1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
C++ 非递归
int Fibonacci2(int n)
{
if(n==1||n==2) return 1;
int fn1 = 1;
int fn2 = 1;
int fn;
for(int i = 3;i <= n; i++)
{
fn = fn1+ fn2;
fn2 = fn1;
fn1 = fn;
}
return fn;
}
Golang闭包实现
func Fibonacci3() func int{
back1,back2 := 0,1
return func int{
back1,back2 = back2, (back1+back2)
return back1
}