c++ 爬楼梯问题 递归解决

爬楼梯问题

题目描述
一个人爬楼梯,每次只能爬1个或两个台阶,假设有n个台阶,那么这个人有多少种不同的爬楼梯方法?
输入
输入台阶的阶数
输出
输出有多少种爬楼梯的方法
样例输入
5
样例输出
8

这道题由题目中给的意思,想要从题目里得出什么公式结论,是很不容易的,也会解不出来。所以,应该举例子,从n的值与答案关系的规律入手。列表如下:

n 答案
1 1
2 2
3 3
4 5
5 8
6 13

应该看出来了吧。当n=1时,答案为1;当n=2时,答案为2.其余都为前两数之和。n≤0不考虑。这不就完事儿了么!!!代码如下:

#include <iostream>
using namespace std;
int f(int n)
{
 if (n==1)
 {
  return 1;
 }
 if (n==2)
 {
  return 2;
 }
 else
 {
  return f(n-1)+f(n-2);
 }
} 
int main()
{
 int n;
 cin>>n;
 cout<<f(n);
 return 0;
}

看完了,点个赞再走呗~~~o( ̄▽ ̄)ブ

猜你喜欢

转载自blog.csdn.net/S_JH330206/article/details/107952289