斐波那契:数列从第3项开始,每一项都等于前两项之和。
和这种思想有相似的:素数筛
#include<iostream>
using namespace std;
int fun(int a,int b,int n){
//3、
//假设输入的n为5那么现在n>2所以将a+b的结果作为下一次递归的a的值,
//目前a的值作为下一次递归的b的值,
//并且因为计算过一次所以传入n-1
if(n > 2){
return fun(a+b, a, n-1);
}
return a;//4、如果n<=2就说明可以返回a的值了
}
int main()
{
int a=1,b=1;
int n;//1、n为输入的求斐波那契的第几位
cin>>n;
cout<<fun(a,b,n);//2、传入第一位和第二位a和b
return 0;
}
#include<iostream>
using namespace std;
int fun(int n)
{
if(n == 1||n == 2)
{
return 1;
}else{
return fun(n-1)+fun(n-2);//最主要的区别就在递归里边都是自顶向下但是递归的次数不同
}
}
int main()
{
int n;
cin>>n;
cout<<fun(n);
return 0;
}