青蛙跳台阶问题(史上最详细)

简介: 一只青蛙一次最少可以跳 1层 台阶,一次最多可以跳 2层 台阶,求:该青蛙跳上n 层 的台阶总共有多少种跳法?

一、提出背景



一只青蛙一次最少可以跳 1层 台阶,一次最多可以跳 2层 台阶,求:该青蛙跳上n 层 的台阶总共有多少种跳法?


二、分析问题



9fa65ad81bb0472db06d146c1eee8a00.jpg


如上图分析:


一层台阶:1种跳法

两层台阶:2种跳法

三层台阶:3种跳法

四层台阶:5种跳法


那么我们可以列一个数列:

1 2 3 5 8 13 21 34…


对这些数字是不是很熟悉?没错,问题其实就是隐含了斐波那契数列的思想


三、搜寻规律



  1. F(1) = 1,F(2) = 2
  2. 当 n >= 3 时, F(n) = F(n - 1) + F(n - 2)


程序清单1(递归法):


public class Test1 {
    public static void main(String[] args) {
        int n = 10;
        for (int i = 1; i <= n; i++) {
            System.out.println(fib(i));
        }
    }
    public static int fib(int n){
        if(n==1 || n==2){
            return n;
        }
        else{
            return fib(n-1)+ fib(n-2);
        }
    }
}
//输出 1 2 3 5 8 13 21 34 55 89


程序清单2(迭代法):


public class Test2 {
    public static void main(String[] args) {
        int n = 10;
            fib(n);
    }
    public static void fib(int n){
        int a = 1;
        int b = 2;
        for (int i = 1; i <= n; i++) {
            if (i == 1 || i == 2) {
                System.out.println(i);
            } else {
                int c = a + b;
                a = b;
                b = c;
                System.out.println(c);
            }
        }
    }
}
//输出 1 2 3 5 8 13 21 34 55 89


迭代法分析:


1c198ecd7f0846e3b7cead54b38ad985.jpg


总结



  1. 经典问题都是有其对应的规律的,通过画图实验一次,两次,三次…找到规律,就能得出结果,不必深挖,否则会陷入问题本身的死循环


  1. 下一篇博客,十七为大家分享汉诺塔的问题


ae6d8c54ba9a472b9061b4942902cf2f.jpg


Over. 谢谢观看哟~

目录
相关文章
|
8月前
|
测试技术
题目1444:蓝桥杯2014年第五届真题斐波那契
题目1444:蓝桥杯2014年第五届真题斐波那契
64 0
|
机器学习/深度学习 存储 人工智能
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
|
机器学习/深度学习 存储 容器
AcWing - 蓝桥杯集训每日一题(DAY 6——DAY 10)
一个二叉树,树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。
AcWing - 蓝桥杯集训每日一题(DAY 6——DAY 10)
|
人工智能 算法 BI
走进传奇的“杨辉三角”
走进传奇的“杨辉三角”
115 0
|
算法 测试技术
蓝桥杯2022年第十三届决赛真题-卡牌——二分法
蓝桥杯2022年第十三届决赛真题-卡牌——二分法
135 0
【蓝桥杯集训·每日一题】AcWing 3382. 整数拆分
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 背包DP
97 0
|
机器学习/深度学习
【蓝桥杯集训·每日一题】 AcWing 3996. 涂色
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 区间DP Unique函数
127 0
|
移动开发 决策智能
【蓝桥杯集训·每日一题】AcWing 4005. 取石子游戏
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 1. 正解 2. 打表找规律 2、时间复杂度 3、代码详解 三、知识风暴 博弈论
136 0
|
存储 机器学习/深度学习 算法
【蓝桥杯集训·每日一题】AcWing1394. 完美牛棚
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 匈牙利算法
157 0
|
机器学习/深度学习
【蓝桥杯集训·每日一题】AcWing 4496. 吃水果
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 求组合数
80 0