跳台阶

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

public class Solution {
     
    //斐波拉契数列
    //递归的方法
    /*
    public int JumpFloor(int target) {
        if(target <= 0) {
            return 0;
        }
        else if(target == 1) {
            return  1;
        }
        else if(target == 2) {
            return 2;
        }
        else {
            return JumpFloor(target -1) + JumpFloor(target - 2);
        }
    }
    */
     
    //方法二:迭代
    /*
     
    */
    public int JumpFloor(int target) {
         
         
        //本质就是一个菲波拉契数列
         
        if(target <= 0)
            return 0;
         
        if(target == 1)
            return 1;
         
        if(target == 2)
            return 2;
         
        int sum = 0;    //sum表示总方法数
        int n1 = 1;     //n1表示从某个台阶跳一次(一个台阶或者两个台阶)到当前阶层,有多少种跳法,初始值为1是表示跳到第3层有1种跳法。
        int n2 = 2;     //n2表示从某个台阶跳一次(一个台阶或者两个台阶)到当前阶层,有多少种跳法,初始值为2是表示跳到第3层有2种跳法。
         
         
        //从第3层开始
        for(int i = 3; i <= target; i++) {
             
            //首先计算跳到第三层的总方法数
            sum = n1 + n2;
            //更新n1,n2,为跳第4层做准备
            n1 = n2;
            n2 = sum;
        }
         
        return sum;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • You are climbing a stair case. It takes n steps to reach ...
    stevewang阅读 1,513评论 0 3
  • 最近在刷一些数据结构的题,发现个很有趣的问题:跳台阶问题。 1. 第一题(引子):输出菲波那切数列的第N项。 斐波...
    MentallyL阅读 2,911评论 1 6
  • 变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶...
    echoVic阅读 650评论 0 1
  • 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种...
    云胡同学阅读 382评论 0 0
  • 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路: 首先我们...
    光光李阅读 276评论 0 0