爱问知识人 爱问教育 医院库

vb的递归算法问题,

首页

vb的递归算法问题,

Private Sub hanoi(n%, one$, two$, three$)If n = 1 ThenPrint one, threeElsehanoi n - 1, one, three, twoPrint one, threeEnd IfEnd Sub Private Sub Form_Click()hanoi 2, "a", "b", "c"End Sub 结果是 a        b a        c 但是将 hanoi 2,"a","... Private Sub hanoi(n%, one$, two$, three$)If n = 1 ThenPrint one, threeElsehanoi n - 1, one, three, twoPrint one, threeEnd IfEnd Sub
Private Sub Form_Click()hanoi 2, "a", "b", "c"End Sub
结果是
a b
a c
但是将 hanoi 2,"a","b","c" 换成 hanoi 3,"a","b","c"
结果就是
a c
a b
a c
求详细解释电脑是怎么得到这结果的。。。一步一步啊。。我应该没理解递归,能顺带讲一下最好了 展开 Private Sub hanoi(n%, one$, two$, three$)If n = 1 ThenPrint one, threeElsehanoi n - 1, one, three, twoPrint one, threeEnd IfEnd Sub
Private Sub Form_Click()hanoi 2, "a", "b", "c"End Sub
结果是
a b
a c
但是将 hanoi 2,"a","b","c" 换成 hanoi 3,"a","b","c"
结果就是
a c
a b
a c
求详细解释电脑是怎么得到这结果的。。。一步一步啊。。我应该没理解递归,能顺带讲一下最好了
百度吞了换行 这里补充

提交回答

全部答案

    2019-06-15 21:26:23
  • 首先,当n=1的时候,a-c你懂啥。
    当n=2的时候,电脑先执hanoi 2 a b c
    if不可行,然后执行 hanoi 1 a c b if可行,结果one,three对应着 a-b。接着再执行上面未完的hanoi n a b c 结果对应着a-c。
    下面来看三,先是hanoi 3 a b c执行else
    hanoi 2 a c b else hanoi 1 a b c注意,这里bc的位置又换了回来。所以,在hanoi 1 a b c(属于hanoi n-1 a c b) 结果 a-c然后回归,hanoi 2 a c b print a-b 接着回归最开始的hanoi 3 a b c print a-c。在这个过程中,换位是重点。

    廖***

    2019-06-15 21:26:23

类似问题

换一换

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):