您的位置:首页 > 编程语言 > Python开发

python函数递归的几个例子

2016-10-27 15:45 405 查看
斐波那契数列1,1,2,3,5,8,13,21……

#!/usr/bin/env python
# encoding: utf-8

def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n-1) + fib(n-2)

print fib(6)

汉诺塔
#!/usr/bin/env python
# encoding: utf-8

count = 0

def hanoi(n,a='左',b='中',c="右"):
global count
if n == 1:
format = 'Move %3d from % 5s to % 5s count:%i'
count += 1
print format % (n,a,c,count)
else:
hanoi(n-1,a,c,b)
format = 'Move %3d from % 5s to % 5s count:%i'
count +=1
print format % (n,a,c,count)
hanoi(n-1,b,a,c)

hanoi(4)

回文数
def is_panlindrom_rec(arg):
if len(arg) <=1:
return True
else:
if arg[0] != arg[-1]
return False
else:
return is_panlindrom_rec(arg[1:-1])

阶乘
def p(n):
if n == 1 or n == 0:
return 1
else:
return n * p(n-1)

随机停车
#!/usr/bin/env python
# encoding: utf-8

import random

def parking(low,high):
if high - low < 1:
return 0
else:
x = random.uniform(low,high-1)
return 1 + parking(low,x) \
+ parking(x+1,high)

print parking(0,9)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  count python return