**递归函数**
{1.调用自身
2.递归的终止条件
}
关于斐波那契数列的函数
A0=0,A1=1
An=A(n-1)+A(n-2) (n>1)
int fib(int n){
if(n<=1) return n;
return fib(n-1)+fib(n-2);
}
如果fiber(n)的n是一定的,无论调用多少次都会得到相同的结果,为此可以用数列把结果存起来。
int memo[max_n + 1];
int fib(int n) {
if (n <= 1) return n;
if (memo[n] != 0)return memo[n];
return memo[n] = fib(n - 1) + fib(n - 2);
}
另一种写法是:
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
long f1,f2;
int i;
for(i=1;i<20;i++){
cout<<setw(12)<<f1<<setw(12)<<f2;
if(i%2==0)cout<<endl;
f1=f1+f2;
f2=f2+f1;
}
return 0;
}