①首先要能在脑中想明白n=3时的移动情况:
hanoi(3,"A","B","C"):
A→C;
A→B;
C→B;
A→C;
B→A;
B→C;
A→C.
共7次
②n=4个的时候是:
"3个圆盘重新摞在一起的次数"+1次+"3个圆盘重新摞在一起需要的次数"
=2x"3个圆盘重新摞在一起的次数"+1次
=15次。
③n=n的时候:
次数f(n)=2f(n-1)+1=……=2^(n)-1
伪码描述:
def hanoi(n,a,b,c):
if n==1:print(a,'→',c)
else:
hanoi(n-1,a,c,b)
print(a,'→',c)
hanoi(n-1,b,a,c)