公司想做个网站,是in the wordpress,用flask做的网站,店铺推广软文300字【任务需求】
定义一个函数#xff0c;用递归的方式模拟汉诺塔问题#xff0c;三个柱子#xff0c;分别为A、B、C#xff0c;其中A柱子上有N个盘子#xff0c;从小到大编号为1到N#xff0c;盘子大小不同。现在要将这N个盘子从A柱子移动到C柱子上#xff0c;但移动的过…【任务需求】
定义一个函数用递归的方式模拟汉诺塔问题三个柱子分别为A、B、C其中A柱子上有N个盘子从小到大编号为1到N盘子大小不同。现在要将这N个盘子从A柱子移动到C柱子上但移动的过程必须遵循以下规则
1.每次只能移动一个盘子
2.盘子只能放在空柱子或者比自己大的盘子上面
3.每次只能移动最上面的盘子。
代码展示
# 模仿汉诺塔
count 0
def hanoi(num,src,mid,dst): #num代表圆盘数src,mid,dst,分别代表初始柱缓冲柱目标柱if num 1:returnglobal count # 移动的次数的变量为全局变量if num 1:print(src,--,dst)count 1else:hanoi(num-1,src,mid,dst)print(src,--,dst)count 1hanoi(num-1,mid,dst,src)hanoi(3,A,C,B) # 设置盘子的数量同时将num数量个盘子从柱子A移动到柱子C辅助柱子为柱子B
print(f移动了{count}次)运行结果