# usr/bin/env python3 # -*- coding:utf-8 -*- # 以下是汉诺塔游戏程序# 定义递归函数,其中n 为盘子数量,a,b,c 分别表示3个柱子# 如果需要将n个盘子从a经过b移动到c,则a中最大的底盘移动到c时,剩下的n-1个盘子需要借助c移动到b; def move(n, a, b, c): if n == 1: # 如果只有1个,则直接从a移动到c print(a, '-->', c) else: # 如果个数大于1个,则需要先将n-1个移动到b,将最大的移动到c move(n-1, a, c, b) # 将n-1个移动到b move(1, a, b, c) # 最大的移动到c move(n-1, b, a, c) # 将剩下的n-1移动到c # 调用函数 move(3, 'A', 'B', 'C')
原来如此,我以为规则是一次只能移动一个盘,我就说怎么看不懂别人的答案。。。。
规则就是一次只能移动一个盘
Sign in to make a reply
奥巴马楠哥