题目:一个楼梯共有 n级台阶,每次可以走一级或者两级,问从第0级台阶走到第n级台阶一共有多少种方案?
方法一:找规律 为斐波那契数列
#include<iostream>
using namespace std;
int fic(int n)
{
if(n==1) return 1;
else if(n==2) return 2;
else return fic(n-1)+fic(n-2);
}
int main()
{
int n;
cin>>n;
cout<<fic(n)<<endl;
return 0;
}
方法二:递归搜索树
#include<iostream>
using namespace stdl;
int num;//全局变量默认值为0
int n;
void f(int k)
{
if(k==n) num++;
esle if(k<n)
{
f(k+1);
f(K+2);
}
}
int main()
{
cin>>n;
f(0);
cout<<num<<endl;
return 0;
}