一次可以爬一阶或两阶,
n=1,只有一种方法,爬一阶;
n=2,有两种方法,爬两阶或者先爬一阶再爬一阶;
n=3,可以先爬到第一阶,再爬两阶或者先爬到第二阶再爬一阶;
以此类推,爬到第n阶就是先爬到第n-1阶再爬一阶,或者爬到n-2阶再爬两阶或者先爬到第二阶再爬一阶;
代码如下,联想斐波那契数列,本质是递推:
#include<iostream>
using namespace std;
int climb(int n)
{
if (n==1)
{
return 1;
}
if (n==2)
{
return 2;
}
if (n>=3)
{
return climb(n - 1) + climb(n - 2);
}
}
int main()
{
int n;
cout << "请输入台阶的阶数:";
cin >> n;
cout << endl << "有" << climb(n) << "种方法" << endl;
return 0;
}
大一萌新努力学习ing,一点算法总结,仅供学习参考,如有不足欢迎指正!