剑指offer8-跳台阶

题目描述

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

思路:思路就是斐波那契数列

n个台阶f(n)包括两种情形,一种是刚刚跳了1级,一种是刚刚跳了2级,只有这两种情况。若是刚刚跳了1级的话,那么有f(n-1)中跳法,若是刚刚跳了2级的话,那么有f(n-2)种方法,所以f(n)=f(n-1)+f(n-2).

代码:

class Solution {
public:
    int jumpFloor(int number) {
        if(number==1) return 1;
        if(number==2) return 2;
        int num_first = 1;
        int num_second = 2;
        int count;
        if(number>=3)
        {
            for(int i=2;i<number;i++)
            {
                count = num_first + num_second;
                num_first = num_second;
                num_second = count;
            }
            
        }
        return count;
    }
};

 

posted @ 2020-05-11 14:16  清心lh  阅读(97)  评论(0编辑  收藏  举报