本文实例讲述了Python走楼梯问题解决方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# -*- coding:utf-8 -*-
#!python3
'''
下楼问题。从楼上走到楼下共有h个台阶,每一步有两种走法:
走1个台阶,走2个台阶,问有多少可走的方案。用递归思想和迭代思想编程
'''
'''
分析:问题可以从最后一次是走1步还是两步,反向考虑
'''
def take_stairs_recursive(n):
if n = = 1 :
return 1
elif n = = 2 :
return 2
else :
return take_stairs_recursive(n - 1 ) + take_stairs_recursive(n - 2 )
'''
其实就是斐波那契数列
'''
def take_stairs(n):
if n = = 1 :
return 1
if n = = 2 :
return 2
a,b = 1 , 2
result = 0
for i in range ( 3 ,n + 1 ):
result = a + b
a = b
b = result
return result
print (take_stairs_recursive( 10 ))
print (take_stairs( 10 ))
|
运行结果:
89
89
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://www.cnblogs.com/hupeng1234/p/6680631.html