斐波拉契数列:
F(0)=0
F(1)=1
F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
迭代:
int Fib(int n){
int i=0;
int a=1;
int b=1;
int c=0;
for(i=3;i<=n;i++)
{
c=a+b;
a=b;
b=c;
}
return c;
}
递归:
int count=0;
int Fib(int n) {
if(n==3)
count++;
if(n<=2)
return 1;
else
return Fib(n-1)+Fib(n-2);
}
可通过count数值判断,当n=3是Fib()函数递归执行多少次
主函数:
int main() {
int n=0;
scanf("%d",&n);
int ret=Fib(n);
printf("ret=%d\n",ret);
// printf("count=%d\n",count);
return 0;
}
迭代运行结果:
递归运行结果:(输出当n=3时Fib()函数递归执行多少次,数值越大,调用递归次数越大)