剑指offer - 跳台阶

题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)

解法:
考虑跳到 i 级台阶:(1)从 i-1 级跳一步;(2)从 i-2 级跳两步
那么跳到 i 级台阶的就共有 n i = n i 1 + n i 2 n_{i} = n_{i-1} + n_{i-2} ,显然是满足斐波那契数列

class Solution {
public:
    int jumpFloor(int number) {
        int a = 0;
        int b = 1;
        while(number-->0)
        {
            b = a + b;
            a = b - a;
        }
        return b;
    }
};
发布了55 篇原创文章 · 获赞 17 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38204302/article/details/104312798
今日推荐