题目描述
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述:
输出一个整数,即小乐乐可以走的方法数。
解题思路
因为走到第三个楼梯的时候可以从第一阶和第二阶直接走上来;
同理,第四个楼梯的时候可以从第二阶和第三阶直接走上来;
第五个楼梯的时候可以从第三阶和第四阶直接走上来;
… …
所以可以得出公式
a[i]=a[i-1]+a[i-2]
其中有a[0]=0,a[1]=1,a[2]=2;
代码
#include <iostream> using namespace std; int a[35]={0};//初始化数组为0 int main(){ a[0] = 0; a[1] = 1; a[2] = 2;//先给出头三个值 int n; cin>>n; for(int i =3; i <= n; ++i){//根据递推公式,计算即可 a[i] = a[i-1] + a[i-2]; } cout<<a[n]<<endl; return 0; }