1、递归必须有明确终止条件,不能一直递归不输出;
2、函数处理规模一定是递减 【不然,也是无法终止 要向终止条件 递归前进】
3、这个转化必须是可解的【这个问题可以递归解决 才能用递归 ,不然不要用递归】
#include<iostream>
#include<string>
using namespace std;
//1 2 3 5 8 13 21 34
//前面两个的和是后一个数
//求斐波那契数列第N个数 f(n) = f(n-1)+f(n-2)
递归必须得有一个明确的终止条件
//该函数所处理的数据规模必须在递减
//这个转化必须是可解的
int febonaqie(int n) {
if (n==1)
{
return 1;
}
else if (n==2)
{
return 2;
}
else
{
//用递归 f(n) = f(n-1)+f(n-2)
return febonaqie(n - 1) + febonaqie(n - 2);
}
}
int main() {
cout << febonaqie(7) << endl;
}