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
求详细解释电脑是怎么得到这结果的。。。一步一步啊。。我应该没理解递归,能顺带讲一下最好了
百度吞了换行 这里补充
首先,当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。在这个过程中,换位是重点。
问:怎样学习C语言的函数,递归\函数间调用,主要是理解这些概念
答:可以去参考谭浩强编著的,里面递归解释的很清楚.有汉诺塔的详解.详情>>
答:Adodc1.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data S...详情>>
答:很简单,你在网上搜索下VB.NET的UDP或者TCP通讯代码就成了,有很多的,有单对单或者单对多详情>>