题目描述
一个楼梯共有n级台阶,每次可以走一级或者两级,问从第0级台阶走到第n级台阶一共有多少种方案。
算法
递归
每次可以走一级或两级,返回表达式为ttj(n-1)+ttj(n-2)
,表示前一次是通过走一级到达和通过走两级到达的方案之和。
因为走一级和走两级均为最基本过程,定义这两个情况时的返回值。
C++ 代码
#include <iostream>
using namespace std;
int ttj(int n)
{
if(n==1) return 1;
if(n==2) return 2;
return ttj(n-1)+ttj(n-2);
}
int main()
{
int n;
scanf("%d", &n);
printf("%d", ttj(n));
return 0;
}