为了账号安全,请及时绑定邮箱和手机立即绑定

对于作业中,函数运行不理解。

作业中,函数如何实现循环的?

正在回答

2 回答

#if条件不成立的省略

# { 看做递归开始

# } 看做递归结束

move(4, a, b, c):{  #实际数值(4, A, B, C)

    move(3, a, c, b):{            #c,b调换,实际数值(3, A, C, B), 将这四个值带入move(3, a, b, c)递归1

        move(2, a, c, b):{        #c,b调换,实际数值(2, A, B, C), 将这四个值带入move(2, a, b, c)递归2

            move(1, a, c, b):{    #c,b调换,实际数值(1, A, C, B), 将这四个值带入move(1, a, b, c)递归3

                if n == 1:        #此时n==1,if条件成立

                print(a, '-->',c) #这是第一次打印A-->B

            }                     #最近的一次递归3完成,回到递归2,实际数值(2, A, B, C)

            print(a, '-->', c)    #这是第二次打印A-->C

            move(1, b, a, c):{    #a,b调换,实际数值(1, B, A, C), 将这四个值带入move(1, a, b, c)递归4

                if n == 1:

                print(a, '-->', c)#这是第三次打印B-->C        

            }                     #最近的一次递归4完成,回到递归2,实际数值(2, A, B, C)

        }                         #最近的一次递归2完成,回到递归1,实际数值(3, A, C, B)            

        print(a, '-->', c)        #这是第四次打印A-->B

        move(2, b, a, c):{        #a,b调换, 实际数值(2, C, A, B), 将这四个值带入move(2, a, b, c)递归5

            move(1, a, c, b):{    #c,b调换, 实际数值(1, C, B, A), 将这四个值带入move(1, a, b, c)递归6

                if n == 1:

                print(a, '-->', c)#这是第五次打印C-->A

            }                     #最近的一次递归6完成,回到递归5,实际数值(2, C, A, B)

            print(a, '-->', c)    #这是第六次打印C-->B

            move(1, b, a, c):{    #a,b调换, 实际数值(1, A, C, B), 将这四个值带入move(1, a, b, c)递归7

                if n == 1:

                print(a, '-->', c)#这是第七次打印A-->B

            }                     #最近的一次递归7完成,回到递归5,实际数值(2, C, A, B)

        }                         #最近的一次递归5完成,回到递归1,实际数值(3, A, C, B)

    }                             #最近的一次递归1完成,原参数中的move(n - 1, a, c, b)递归全部完成,实际数值(4, A, B, C)

    print(a, '-->', c)  #这是第八次打印A-->C,下面跟上面同样的方式去理解,就不写了,太累了。

    move(3, b, a, c):{

        move(2, a, c, b):{

            move(1, a, c, b):{

                if n == 1:

                print(a, '-->', c)   #这是第九次打印

            }

            print(a, '-->', c)#这是第10次打印

            move(1, b, a, c):{

                if n == 1:

                print(a, '-->', c)#这是第11次打印

            }

        }

        print(a, '-->', c)   #这是第12次打印

        move(2, b, a, c):{

            move(1, a, c, b):{

                if n == 1:

                print(a, '-->', c)   #这是第13次打印

            }

            print(a, '-->', c)#这是第14次打印

            move(1, b, a, c):{

                if n == 1:

                print(a, '-->', c)#这是第15次打印

            }

        }    

    }

}


0 回复 有任何疑惑可以回复我~

看我刚发布的问题。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

对于作业中,函数运行不理解。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信