Discuss / Python / 作业

作业

Topic source

看了知乎才明白汉诺塔算法到底怎么回事(lll¬ω¬) 因为A,B,C三个点算是固定的,就把这三个做成了默认参数,只用输入n就可以了。 顺便参考了下我楼下那位同学的计数功能,不要介意我抄袭哈哈。但是我还是不理解这个计数功能为什么要这么编,尤其是global s 这个变量是怎么回事? 代码如下: s = 0 def move(n,a='A',b='B',c='C'): #move(盘子个数,起点,缓冲区,终点) global s if n == 1: print (a,'-->',c) s = s +1 return else: #汉诺塔可以抽象为两个盘子((n-1)+1) move (n-1,a,c,b) move (1,a,b,c) move (n-1,b,a,c)

n = int(input('请输入盘子数')) move(n) print (s)


  • 1

Reply