前言
本人认为这题用for循环会简单一点,但题目要求使用递归,咱们也没办法,本文就当作一次递归实战吧
代码
#include <bits/stdc++.h> //万能头文件
using namespace std; //命名空间
int ls[10000] = {1,1}; //定义斐波那契数列数组并初始化
//定义函数
void t(int i,int max){
if(i==max){ //递归边界
ls[i] = ls[i-1]+ls[i-2];
}else{
ls[i] = ls[i-1]+ls[i-2]; //求解
t(i+1,max); //递归自调用
}
}
int main(){
int l; //定义整数变量l
cin >> l; //输入
t(2,l+2); //调用函数做递归
printf("斐波那契数列的第 %.d 项的值为:%.d",l,ls[l-1]); //输出指定项
printf("\n完整斐波那契数列:");
for(int i=0;i<l;i++){
cout << ls[i] << ' '; //循环输出数组每一项
}
return 0; //正常退出
}
版权
本文代码均为本人原创,禁止抄袭!