#汉诺塔
def hanni(n,A,B,C):
if n == 1:
print (A,'-->',C)
else:
# 将n-1个盘子移动到B上
hanni(n-1,A,C,B)
# 将第n个移动到C上
print(A,'-->',C)
# 将n-1个移动到C上
hanni(n-1,B,A,C)
hanni(3,'A','B','C')
#阶乘
#迭代
def factorial(N):
F = 1
for i in range(1,N+1):
F *= i
return F
#递归
def factorial_recursion(N):
if N == 1:
return 1
else:
F = N * factorial_recursion(N -1)
return F
print factorial(10)
print factorial_recursion(10)
#斐波那契数列
#迭代
def fib_ite(N):
n1 = 1
n2 = 1
n3 = 1
if N < 1:
print 'plesae a num'
return -1
while (N-2) > 0:
n3 = n1 + n2
n1 = n2
n2 = n3
N -= 1
return n3
#递归
def fib_num(N):
if N == 1 or N == 2:
return 1
else:
return fib_num(N-1)+fib_num(N-2)
print fib_num(20)
print fib_ite(20)