汉诺塔

143 阅读1分钟

实现一

# -*- coding: utf-8 -*-
def move(n,a,b,c):
	if n == 1:
		print(a,'-->',c)
		return
	move(n-1,a,c,b)
	move(1,a,b,c)
	move(n-1,b,a,c)
	return

	# move(n-2,a,b,c)
	# print(a,'-->',b)
	# move(n-2,c,a,b)
	# print(a,'-->',c)

	# move(n-2,b,c,a)
	# print(b,'-->',c)
	# move(n-2,a,b,c)

实现二

# -*- coding: utf-8 -*-
def move(n,a,b,c):
	if n == 1:
		print(a,'-->',c)
		return
	if n == 2:
                move(n-1,a,c,b)
                move(1,a,b,c)
                move(n-1,b,a,c)
                return

	move(n-2,a,b,c)
	print(a,'-->',b)
	move(n-2,c,a,b)
	print(a,'-->',c)

	move(n-2,b,c,a)
	print(b,'-->',c)
	move(n-2,a,b,c)