#include<stdio.h>#include<stdlib.h>intfib(int n){if(n ==1|| n ==2)return1;returnfib(n-1)+fib(n -2);}intmain(){printf("%d\n",fib(5));return0;}
1.3 结果展示
2.非递归实现
2.1代码实现
#include<stdio.h>#include<stdlib.h>//递归实现斐波那契数列intfib(int n){if(n ==1|| n ==2)return1;returnfib(n-1)+fib(n -2);}//非递归实现斐波那契数列intfib2(int n){if(n ==1|| n ==2){return1;}int last2 =1;//i-2项int last1 =1;//i-1项int cur =0;//表示当前第 i 项 的结果for(int i =3; i <= n ; i++){
cur = last1 + last2;
last2 = last1;
last1 = cur;}return cur;}intmain(){printf("%d\n",fib2(5));return0;}