Discuss / Python / 同学们怎么都这么神。。。。

同学们怎么都这么神。。。。

Topic source

把参数全打出来,终于看清楚程序怎么跑的了。。move(n-1,a,c,b)其实就是两个参数位置的对换。问题是还不知道你们是根据什么思路想出来的。。

def move(n, a, b, c): if 1==n: print('Hit stop key',n,a,b,c) print(a, '-in if>', c) else: print('n1',n,a,b,c) move(n-1, a, c ,b) print('n2',n,a,b,c) print(a, '--in else>', c) move(n-1, b, a ,c) move(3, 'A', 'B', 'C')

结果:

n1 3 A B C n1 2 A C B Hit stop key 1 A B C A -in if> C n2 2 A C B A --in else> B Hit stop key 1 C A B C -in if> B n2 3 A B C A --in else> C n1 2 B A C Hit stop key 1 B C A B -in if> A n2 2 B A C B --in else> C Hit stop key 1 A B C A -in if> C

Dominias

#3 Created at ... [Delete] [Delete and Lock User]

打印出来还是没搞懂啊!!!

youzhoutaiV

#4 Created at ... [Delete] [Delete and Lock User]

结果的第5行为什么是下面这样的了? n2 2 A C B这个结果应该是从print('n2',n,a,b,c)打印出来的吧?不太理解这一步,为什么打印出来的n值是2

厚圡

#5 Created at ... [Delete] [Delete and Lock User]

同不理解,为什么在n=3或者2的时候,就会运行print('Hit stop key',n,a,b,c),hit stop key不是只有在n=1时才会出现么,具体是什么运作机制呢?


  • 1

Reply