#汉诺塔 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)