[[練習問題]]

 cnt = 1
 
 def solve(n, A, B, C):
   global cnt
   if n > 0:
     solve(n-1, A, C, B)
     if A[0]:
       disc = A[0].pop()
       print '%2d: move %d from %s to %s'%(cnt, disc, A[1], C[1])
       cnt += 1
       C[0].append(disc)
     solve(n-1, B, A, C)
 
 def hanoi(n):
   A = (range(1, n+1)[::-1], 'source')
   B = ([], 'helper')
   C = ([], 'target')
   solve(n, A, B, C)
 
 hanoi(4)



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS