最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

python代码实现递归和循环-跳台阶

XAMPP案例 admin 41浏览 0评论

【跳台阶】


题目描述

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


思路

1.归纳法。一级台阶:1种;二级台阶:2种;三级台阶:3种,四级台阶:5种;五级台阶:8种…可以归纳出是斐波那契数列的形式。

2. 直接考虑第n级台阶的跳法。要想跳上第n级台阶,只能从第n-1或者第n-2级台阶起跳,因此第n级台阶的跳法为跳到第n-1与第n-2级台阶跳法之和,即F(n)=F(n-1)+F(n-2),为斐波那契数列的形式。


# -*- coding:utf-8 -*-class Solution:    def jumpFloor(self, number):        # write code here        if number == 0:            return 0        if number == 1:            return 1        if number == 2:            return 2        a=[1,2]        for i in range(2,number):            a.append(a[i-1]+a[i-2])        return a[number-1

上述代码也可写成如下while循环

# -*- coding:utf-8 -*-class Solution:    def jumpFloor(self, number):        # write code here        if number == 0:            return 0        if number == 1:            return 1        if number == 2:            return 2        a,b,i=1,2,2        while i < number:            result=a+b            i=i+1            a,b=b,result        return result

测试:

s=Solution()num=10print('青蛙跳到{}级台阶共有{}种跳法'.format(num,s.jumpFloor(num)))# result青蛙跳到10级台阶共有89种跳法

【跳台阶】


题目描述

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


思路

1.归纳法。一级台阶:1种;二级台阶:2种;三级台阶:3种,四级台阶:5种;五级台阶:8种...可以归纳出是斐波那契数列的形式。

2. 直接考虑第n级台阶的跳法。要想跳上第n级台阶,只能从第n-1或者第n-2级台阶起跳,因此第n级台阶的跳法为跳到第n-1与第n-2级台阶跳法之和,即F(n)=F(n-1)+F(n-2),为斐波那契数列的形式。


# -*- coding:utf-8 -*-class Solution:    def jumpFloor(self, number):        # write code here        if number == 0:            return 0        if number == 1:            return 1        if number == 2:            return 2        a=[1,2]        for i in range(2,number):            a.append(a[i-1]+a[i-2])        return a[number-1

上述代码也可写成如下while循环

# -*- coding:utf-8 -*-class Solution:    def jumpFloor(self, number):        # write code here        if number == 0:            return 0        if number == 1:            return 1        if number == 2:            return 2        a,b,i=1,2,2        while i < number:            result=a+b            i=i+1            a,b=b,result        return result

测试:

s=Solution()num=10print('青蛙跳到{}级台阶共有{}种跳法'.format(num,s.jumpFloor(num)))# result青蛙跳到10级台阶共有89种跳法

转载请注明:XAMPP中文组官网 » python代码实现递归和循环-跳台阶