青蛙上楼梯python(头歌教学实践平台)

第1关:青蛙上楼梯

任务描述

本关任务:一个青蛙一次可以跳上1级台阶,也可以跳上2级台阶,编写一个程序计算青蛙跳上一个n级台阶共有多少中跳法。

相关知识

为了完成本关任务,你需要掌握: 1.青蛙跳楼梯, 2.递归思想求解青蛙跳楼梯问题。

青蛙跳楼梯

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

递归思想求解青蛙跳楼梯问题

思路:既然青蛙一次可以跳上1个1级台阶或者一次跳上1个2级台阶,那么跳上一个n级台阶的方法:

  • 要么是先跳上一个n-1级台阶然后再跳一个1级台阶做到;
  • 要么是跳上一个n-2级台阶然后再跳上一个2级台阶实现;

所以跳上n级台阶的方法数等于跳上n−1级台阶的方法数加上跳上n−2级台阶的方法数,用f(n)表示跳上n级台阶的方法数,经过我们的分析,有:

 

使用递归算法求解青蛙跳楼

按照递归的思想,我们直到青蛙每次只能跳1级或2级台阶,那么假如调到n级台阶,那么青蛙只能从n-1级或n-2级跳上来,则f(n)=f(n-1)+f(n-2),用程序表示:

  1. def goUpstairs(n):
  2. if n == 1: #跳1级台阶只有一种方法
  3. return 1
  4. elif n==2:#跳2级台阶有一次跳2级,或者连续跳1级,共有2中方法
  5. return 2
  6. else:
  7. #请在下面空白处补充完整,实现求解青蛙跳上n级台阶有多少中方法
  8. ########## Begin ##########
  9. ########## End ##########

编程要求

根据提示,在右侧编辑器补充代码,实现求解青蛙跳上n级台阶有多少中方法的计算。

测试说明

点击右下角测评后,再返回到图形化窗口。 等待排序窗口出现,点击开始排序查看排序过程。 排序完成后,在600s内点击 exit,使界面关闭,即可进行测评。 若执行成功,说明成功通关。

开始你的任务吧,祝你成功!

#conding:utf8
def goUpstairs(n):
    #青蛙爬楼梯,爬到第一阶需要爬一步,共有1中方法,爬到第2阶,可以一次爬2阶,也可以每次爬1阶共爬2次,请在Begin-End中补充代码,计算青蛙爬到n阶,共有多少中爬法
   ########## Begin ##########
    if n==1:
        return 1
    elif n==2:
        return 2
    else:
        return goUpstairs(n-1)+goUpstairs(n-2)
   ########## End ##########

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值