Discuss / Python / 打卡

打卡

Topic source

Mints_鱼酱

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

    if n == 1:

        print(a, '-->', c)

    else:

        move(n-1, a, c, b)

        move(1, a, b, c)

        move(n-1, b, a, c)

    return

实际运行过程:

move(3, 'A', 'B', 'C')

①3!=1

    else:

    move(2,a,c,b)

    move(1,a,b,c)

    move(2,b,a,c)

    ②2!=1(else第一行move(2,a,c,b))

        else:

move(1,a,b,c)

move(1,a,c,b)

move(1,c,a,b)

    ③1==1(else第二行move(1,a,b,c))

    print(a, '-->', c)

    ④2!=1(else第三行move(2,b,a,c))

else:

        move(1,b,c,a)

        move(1,b,a,c)

        move(1,a,b,c)

因此,最后执行:

②print(a, '-->', c)即A --> C

print(a, '-->', b)即A --> B

print(c, '-->', b)即C --> B

③print(a, '-->', c)即A --> C

④print(b, '-->', a)即B --> A

print(b, '-->', c)即B --> C

print(a, '-->', c)即A --> C

AntiHatred

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

看到这终于整明白运行思路了,感谢

问下大佬最后的return是必须的吗?我看好像是个哑函数也不用输出啥……

只有这个才看懂了,牛逼


  • 1

Reply