一个楼梯共有 n 级台阶,每次可以走一级或者两级,问从第 0 级台阶走到第 n 级台阶一共有多少种方案。
输入格式
共一行,包含一个整数 n。
输出格式
共一行,包含一个整数,表示方案数。
数据范围
1≤n≤15
输入样例:
5
输出样例:
8
ac代码,用一个大小为15的数组储存结果
#include<iostream>
using namespace std;
const int N = 16;
int q[N];
int vac;
int main()
{
q[0] = 1 , q[1] = 2;
for(int i = 2 ; i < 15 ; i++)q[i] = q[i - 1] + q[i - 2];
cin >> vac;
cout << q[vac - 1];
return 0;
}
2:递归解决
基本思想是一样的,只是实现的方式变了
#include<iostream>
using namespace std;
int vac;
int step(int i)
{
if(i == 1)return 1;
if(i == 2)return 2;
return step(i - 1) + step(i - 2);
}
int main()
{
cin >> vac;
vac = step(vac);
cout << vac;
return 0;
}