斐波那契数列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)