老夏学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 550|回复: 0

一只青蛙一次可以跳上1个台阶,也可以跳上2个台阶,计算...

[复制链接]

304

主题

847

帖子

1082

G币

院长

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
1082

院长资深讲师

QQ
发表于 2023-7-14 09:50:39 | 显示全部楼层 |阅读模式
        一只青蛙一次可以跳上1个台阶,也可以跳上2个台阶,计算该青蛙跳上具有n个台阶的跳法有多少种

    解此种题型,需要从计算的结果入手,即赋予假定值,然后罗列计算的结果,最后根据计算的结果推断出相关算法。
    假设青蛙跳上n个台阶共有f(n)种方法,而f(n)种方法又可细分为2种:一是一次跳了1个台阶,那么剩下的n-1个台阶,其跳法是f(n-1);二是一次跳了2个台阶,那么剩下的n-2个台阶,其跳法是f(n-2),因此,可以得出公式:f(n)=f(n-1)+f(n-2),然后通过实际的情况可以得出,当总共有1个台阶时,跳法f(1)=1,当总共有2个台阶时,跳法f(2)=2,即当总共有1个台阶时,共有1种跳法;当总共有2个台阶时,共有2种跳法;当总共有3个台阶时,共有3种跳法;当总共有4个台阶时,共有5种跳法……,经过分析,该数列属于斐波那契数列。
    解析代码如下:
  1. def jumpFloor(num):
  2.     # 当台阶数有1级或2级时,直接返回
  3.     if num == 1 or num == 2:
  4.         return num
  5.     # 斐波那契数列
  6.     return jumpFloor(num - 1) + jumpFloor(num - 2)
  7. print(jumpFloor(4))
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|老夏学院 ( 辽ICP备19020546号-1 )

GMT+8, 2024-5-18 20:51 , Processed in 1.063517 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020.

快速回复 返回顶部 返回列表