def move(n,a,b,c):
if n<0:
print('please input more than 1')
if n == 1:
print('%s -> %s'%(a,c))
if n >= 2:
move(n-1,a,c,b)
print('%s -> %s'%(a,c))
move(n-1,b,a,c)
move(3,'A','B','C')
recur.py
!/usr/bin/env python3
-- coding:utf-8 --
N!=123*.....N
def fact(n):
if n == 1:
return 1
return n*fact(n-1)
翁岚敏
问题
尾递归优化为什么不支持 是不是没有必要性
练习
-- coding:utf-8 --
def move(n,a,b,c): if n<0: print('please input more than 1') if n == 1: print('%s -> %s'%(a,c)) if n >= 2: move(n-1,a,c,b) print('%s -> %s'%(a,c)) move(n-1,b,a,c)
move(3,'A','B','C')
recur.py
!/usr/bin/env python3
-- coding:utf-8 --
N!=123*.....N
def fact(n): if n == 1: return 1 return n*fact(n-1)
print('fact(1) =', fact(1)) print('fact(5) =', fact(5)) print('fact(10) =', fact(10))
HANOI
def move(n,a,b,c): if n ==1: print('move ',a,'-->',c) return move(n-1,a,c,b) print('move',a,'-->',c) move(n-1,b,a,c)
move(4,"A","B","C")