#include <iostream>
using namespace std;
/*
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
*/
//0 1 2 3
//f(n) = (最后一次跳一级台阶有多少种方法) + (最后一次跳两级台阶有多少种方法)
//即:
//f(n) = f(n - 1) + f(n - 2)
class Solution
{
public:
int jumpFloor(int number)
{
if (number <= 1)
{
return number;
}
int first = 1;
int second = 1;
while (--number)
{
int tmp = second;
second += first;
first = tmp;
}
return second;
}
};
int main()
{
Solution s1;
for (int i = 0; i < 10; i++)
{
cout << s1.jumpFloor(i) << endl;
}
return 0;
}
//https://github.com/HonestFox/BrushQuestion
以4个台阶为例子
那么有(1,1,1,1)(1,2,1)(1,1,2)(2,1,1)(2,2)5种 走法
main()测试中给出了 10阶内的走发分别有多少种
循环中
first second tmp
1 1
1 2 1
2 3 2
3 (5 ) 3
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。