搜索
首页 电脑/网络 程序设计 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 SubPrivate Sub Form_Click()hanoi 2, "a", "b", "c"End Sub结果是a ba c但是将 hanoi 2,"a","b","c" 换成 hanoi 3,"a","b","c" 结果就是a ca ba c求详细解释电脑是怎么得到这结果的。
  。。一步一步啊。。我应该没理解递归,能顺带讲一下最好了 展开 Private Sub hanoi(n%, one$, two$, three$)If n = 1 ThenPrint one, threeElsehanoi n - 1, one, three, twoPrint one, threeEnd IfEnd SubPrivate Sub Form_Click()hanoi 2, "a", "b", "c"End Sub结果是a ba c但是将 hanoi 2,"a","b","c" 换成 hanoi 3,"a","b","c" 结果就是a ca ba c求详细解释电脑是怎么得到这结果的。
  。。一步一步啊。。我应该没理解递归,能顺带讲一下最好了百度吞了换行 这里补充。

全部回答

2019-06-15

0 0

    首先,当n=1的时候,a-c你懂啥。当n=2的时候,电脑先执hanoi 2 a b cif不可行,然后执行 hanoi 1 a c b if可行,结果one,three对应着 a-b。
  接着再执行上面未完的hanoi n a b c 结果对应着a-c。下面来看三,先是hanoi 3 a b c执行elsehanoi 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。
  在这个过程中,换位是重点。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
VB
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
程序设计
VB
数据库
C/C++
JAVA相关
C#/.NET
VC++
汇编语言
其他编程语言
VB
VB
举报
举报原因(必选):
取消确定举报