美文网首页常用算法
2019-08-04-青蛙跳台阶问题

2019-08-04-青蛙跳台阶问题

作者: 王元 | 来源:发表于2019-08-04 22:16 被阅读0次

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

分析

  • 如果只有一个台阶,那显然只有一种跳法
  • 俩阶的话,有俩种
  • 三阶的话就是1+2种
  • 依次类推,我们发现当次的跳法,是前俩次的和

这不就是斐波那契数列吗,上面问题的解就是斐波那契数列第n个位置的值

1,斐波那契数列

/**
 * 青蛙跳台阶,一次跳一个或者俩个台阶,共有多少种跳法
 * @param idx
 * @return
 */
public static int fibonacci(int idx) {
    if(idx == 1) {
        return 1;
    } else if(idx == 2) {
        return 2;
    }
    //return sum(idx - 1) + sum(idx - 2);
    int one = 1;
    int two = 2;
    int sum = 0;
    for (int i = 2; i < idx; i++) {
        sum = one + two;
        one = two;
        two = sum;
    }
    return sum;
}

2,构建一个完整的斐波那契数列

private static int[] getFbArray(int n) {
    int[] result = new int[n];
    for (int i = 1; i < n; i++) {
        result[i] = fibonacci(i);
    }
    return result;
}

3, 求斐波那契数列的和

private static int sumFb(int n) {
    int result = 0;
    for (int i = 1; i < n; i++) {
        result += fibonacci(i);
        System.out.println("n = [" + result + "]");
    }
    return result;
}

4,求斐波那契数列中俩个元素之间的数值的和

/**
 * 求斐波那契数列数组中start到end之间的数字的和
 * @param start
 * @param end
 * @return
 */
public static int diff(int start, int end) {
    int count = 0;
    for (int i = start; i < end; i++) {
        count += fibonacci(i);
    }
    return count;
}

相关文章

  • 动态规划

    青蛙跳台阶问题 问题:一个青蛙,一次只能跳一级台阶,或者跳两级台阶,这个青蛙跳 n 级台阶有多少种跳法? 如果这只...

  • 算法---青蛙跳台阶问题

    一只青蛙可以一次跳一级台阶,也可以一次跳两级台阶,如果青蛙要跳上n级台阶,共有多少钟跳法? 问题分析 当青蛙即将跳...

  • 青蛙跳台阶问题

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

  • 2019-08-04-青蛙跳台阶问题

    问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法? 分析 如果只...

  • python编程题

    1、台阶问题、斐波那契 一只青蛙可以跳上一级台阶,也可以跳上两级台阶,求青蛙跳上一个n级台阶共有多少种跳法 方法一...

  • 剑指 Offer 10- II. 青蛙跳台阶问题

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

  • TS数据结构与算法之青蛙跳台阶有几种方式

    问题: 一只青蛙, 一次可跳1级,也可跳2级 问:青蛙跳到n级台阶,总共有多少种方式? 用动态规划分析问题 要跳到...

  • 青蛙跳台阶-递归思想解算

    问题:一只青蛙一次可以跳上一级台阶,也可以跳上两级台阶。求该青蛙跳上n级台阶总共有多少种跳法? 思路:要跳上 第n...

  • 青蛙跳台阶--python

    一只青蛙可以一次跳 1 级台阶或者一次跳 2 级台阶,例如:跳上第 1 级台阶只有一种跳法:直接跳 1 级即可。跳...

  • 这几个Python经典算法都不会,别说你是Python程序员

    1 台阶问题/斐波纳挈 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。...

网友评论

    本文标题:2019-08-04-青蛙跳台阶问题

    本文链接:https://www.haomeiwen.com/subject/ujdudctx.html