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

阅读: 评论:0

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

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

问题描述

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

解题思路

n=1(只有1级台阶时) : 只有1种跳法
n=2(只有2级台阶时):有2种跳法,可以跳2个1级的台阶,也可以直接跳2级台阶
n=3(只有3级台阶时):分为两种情况:最后是跳1级台阶到顶,此时前面还剩2级台阶,变为了n=2的情况(有2种跳法);最后是跳2级台阶到顶,此时前面还剩1级台阶,变为了n=1的情况(有1种跳法)。所以一共有2+1=3种跳法。
n=4(只有4级台阶时): 分为两种情况:最后是跳1级台阶到顶,此时前面还剩3级台阶,变为了n=3的情况(有3种跳法);最后是跳2级台阶到顶,此时前面还剩2级台阶,变为了n=2的情况(有2种跳法)。所以一共有3+2=5种跳法。

所以是一个类似斐波那契数列,f(n) = f(n-1) + f(n-2)

def fib(n):a, b = 0, 1for _ in xrange(n):a, b = b, a + breturn b

类似的问题还有一个:

问题描述

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。
请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,
总共有多少种方法?

解题思路

n=1:只有竖放1个矩形一种解决办法
n=2:有横放2个矩形,竖放2个矩形两种解决办法
n=3:n=2的基础上加1个竖向,n=1的基础上加2个竖向
n=4:n=3的基础上加1个竖向,n=2的基础上加2个竖向
·
·
f(n) = f(n-1) + f(n-2)

斐波那契数列变种。。。。。

这种问题,可以通过从n=0或1开始慢慢先算几个,来找出相邻两个数或相邻的几个数之间的关系。

 

 

本文发布于:2024-01-29 00:57:53,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170646107811561.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:跳上   台阶   青蛙   一只   有多少
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23