目录
一、问题描述
一个楼梯共有 n 级台阶,每次可以走一级或者两级,问从第 0 级台阶走到第 n 级台阶一共有多少种方案。
输入格式
共一行,包含一个整数 n。
输出格式
共一行,包含一个整数,表示方案数。
数据范围
1≤n≤15
输入样例:
5
输出样例:
8
二、解题
1.解题思路
(1)斐波那契数列

(2)递归
每一次的选择只有上1阶和上2阶,通过递归,最后有两个情况:
a. n=1,此时只能上一阶;
b. n=2,此时可以两次一阶,或者一次两阶
2.代码
(1)斐波那契数列
#include<iostream>
using namespace std;
int Fibonacci(int n)
{
if(n <=2) return 1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
int main()
{
int n;
cin >> n;
cout << Fibonacci(n+1) << endl;
return 0;
}
(2)递归
#include<iostream>
using namespace std;
int jump(int n)
{
if(n==1) return 1;
else if(n==2) return 2;
return jump(n-1)+jump(n-2);
}
int main()
{
int n;
cin >>n;
cout << jump(n) << endl;
return 0;
}
2874

被折叠的 条评论
为什么被折叠?



