求python大神帮忙解释一下 这个汉诺塔程序的步骤

defmove(n,a,b,c):ifn==1:printa,'-->',creturnmove(n-1,a,c,b)printa,'-->',cmove(n-1,b,a... def move(n, a, b, c):
if n ==1:
print a, '-->', c
return
move(n-1, a, c, b)
print a, '-->', c
move(n-1, b, a, c)
move(4, 'A', 'B', 'C')

麻烦写的详细些,把每一个结果的程序走的步骤都写下来,谢谢了!
展开
 我来答
木叶秋风
2018-03-29
知道答主
回答量:38
采纳率:100%
帮助的人:10万
展开全部

def my_print(args):

print args

def move(n, a, b, c):

my_print ((a, '-->', c)) if n==1 else (move(n-1,a,c,b) or move(1,a,b,c) or move(n-1,b,a,c))

注释:汉诺塔模型输入move (n, 'a', 'b', 'c')

  1. 例如n=3

  2. move(2,a,c,b)自循环

  3. move(1,a,b,c)

  4. move(2,b,a,c) 自循环

  5. 循环完毕,输出

你这段代码也是类似自循环

宾不可8爷
科技发烧友

2022-06-01 · 探讨excel与财务职场结合的问题
宾不可8爷
采纳数:71 获赞数:94

向TA提问 私信TA
展开全部

这张图我觉得你能够解决你的问题。 灰色部分是我自己的原创,其他的借鉴了网上的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GTA小鸡
高粉答主

2018-03-18 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
def move(n, a, b, c):
    if n ==1: #如果要移动的是第1个盘子
        print a, '-->', c #直接将其从a移到c
        return
    move(n-1, a, c, b) #否则递归移动第1~n-1个盘子到b柱上
    print a, '-->', c #此时a柱上只剩第n个盘子,直接将其从a移动到c
    move(n-1, b, a, c) #继续递归移动第1~n-1个盘子到c柱上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式