剑指Offer——(8)跳台阶

xiaoxiao2021-02-27  328

题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

实现如下:

//两种跳跃方式:跳1级或跳2级 //假设有n级台阶,跳1级还剩余n-1级,跳2级还剩余n-2级,那剩余台阶继续选择跳法 //f(n) = f(n-1) + f(n-2) -> 斐波那契数列 //n = 1时,1 //n = 2时,2 class Solution { public: int jumpFloor(int n) { int a = 1, b = 2, tmp = 0; if (n == 1) return 1;//特殊情况只有1级台阶 else if (n == 2) return 2;//特殊情况只有2级台阶 else { for (int i = 3; i <= n; ++i) { tmp = a + b; a = b; b = tmp; } return b; } } };
转载请注明原文地址: https://www.6miu.com/read-2777.html

最新回复(0)