我是python的初学者,想知道if
语句在这个Hanoi Towers函数中的作用是什么:
def hanoi(ndisks, startPeg=1, endPeg=3):
if ndisks:
hanoi(ndisks-1, startPeg, 6-startPeg-endPeg)
print "Move disk %d from peg %d to peg %d" % (ndisks, startPeg, endPeg)
hanoi(ndisks-1, 6-startPeg-endPeg, endPeg)
hanoi(ndisks=4)
递归算法需要一个终端条件,它通常代表算法的最简单情况。对于河内的塔楼来说,最简单的情况是当没有磁盘可移动时,不要做任何事情。在
在Python中,“false”的一个条件是零的任何数字版本,因此从技术上讲,如果有人向您的算法传递一个负数,那么最好检查一下
if ndisks > 0
。当ndisks==0时,这将停止递归。在如果要移动的磁盘数为正数(n),则递归算法为:
上面描述了其余的代码,终端条件是零磁盘。在
相关问题 更多 >
编程相关推荐