#coding=utf-8 #关于Python的问题 #这道汉诺塔题原理我懂了,其实就是不断在循环做同样的事,只是所谓的a,b,c这三个‘柱子’中b和c不断调换位置。但是下面的代码写法不大懂!!!小白啊!!!!!! def move(n, a, b, c): if n==1: print a,'-->',c return #if语句print之后不是就结束了吗??有同学说不加会无限循环?都print出来了还怎么无限循环呢? else: #这里我加了else,很多同学的代码这里都没有写else,为什么?不写不是逻辑有问题? move(n-1,a,c,b) #这里表示是将n-1个盘子从源柱移动至过度柱?为什么是这样写?move()为什么可以实现n-1的随意移动? print a,'-->',c #这里为什么又出现了print?我知道这是把最后一个移到目标柱,为什么不是和上面一样move() move(n-1,b,a,c) #这里和line6一样的,()里的n-1为何可以随意移动?而且a,c,b和a,b,c这种写法怎么解释?,感觉这代码为什么要这么绕....这汉诺塔的意思我都理解,可是代码写的我凌乱!!! move(4, 'A', 'B', 'C') 请大神为我一一细答!小弟不胜感激!!!
亚努人
相关分类