问题如下:当int_Num=2时程序进程是什么,请详细解答
以下系拷贝daviddivad
Private Sub Command1_Click()
Call Hanoi(4, "第一根柱子", "第二根柱子", "第三根柱子")
End Sub
Private Sub Hanoi(ByVal int_Num As Integer, ByVal strA As String, ByVal strB As String, ByVal strC As String)
'int_Num:总的盘子的个数
If int_Num = 1 Then
Print "Move " & strA & " to " & strC
Else
Call Hanoi(int_Num - 1, strA, strC, strB)
Print "Move " & strA & " to " & strC
Call Hanoi(int_Num - 1, strB, strA, strC)
End If
End Sub
以下系拷贝daviddivad
Private Sub Command1_Click()
Call Hanoi(4, "第一根柱子", "第二根柱子", "第三根柱子")
End Sub
Private Sub Hanoi(ByVal int_Num As Integer, ByVal strA As String, ByVal strB As String, ByVal strC As String)
'int_Num:总的盘子的个数
If int_Num = 1 Then
Print "Move " & strA & " to " & strC
Else
Call Hanoi(int_Num - 1, strA, strC, strB)
Print "Move " & strA & " to " & strC
Call Hanoi(int_Num - 1, strB, strA, strC)
End If
End Sub
解决方案 »
- 删除SSTAB的选项卡
- 设备场景指什么
- 在VB6.0里面,我要在PICTURE控件的图像上面,加入一段文字,怎么办?
- 50分的问题:在VB中怎样修改ACCESS数据库中的某个表的名称?谢谢~!
- vb与vc的结构传递问题。
- 在Vb中如何判断当前的系统中装了Office,并且Office版本为97?在线9等待!
- 如何在文本框中显示数据库信息?
- VB编程中,如何处理ADO控件的出错信息?急!!!急!!!!
- 關於Data Shaping技術,特急!!
- 午夜黎明????
- 我的vb程序在运行时需要重新调用一个驱动的安装程序,但安装程序会弹出两个选择窗口,怎么样模拟键盘输入,去掉窗口,让安装程序不需人工按键,能够完成??
- 我写了一个class,编译成dll后,asp调用正常,现在我想加入api或钩子使用,代码添在这个class什么地方??
'int_Num=2
Call Hanoi(1, "第一根柱子", "第三根柱子", "第二根柱子")
Print "Move " & "第一根柱子" & " to " & "第二根柱子" Print "Move " & "第一根柱子" & " to " & "第三根柱子" Call Hanoi(1, "第二根柱子", "第一根柱子", "第三根柱子")
Print "Move " & "第二根柱子" & " to " & "第三根柱子"'结果: Move 第一根柱子 to 第二根柱子
Move 第一根柱子 to 第三根柱子
Move 第二根柱子 to 第二根柱子
当int_Num=2时,int_Num-1就是1啊
这时不是调用 If int_Num = 1 Then
Print "Move " & strA & " to " & strC
吗
Private Sub Hanoi(ByVal int_Num As Integer, ByVal strA As String, ByVal strB As String, ByVal strC As String)
'int_Num:总的盘子的个数
'int_Num =2
If int_Num = 1 Then ''int_Num =2
Print "Move " & strA & " to " & strC
Else '当 ''int_Num =2 运行下面
Call Hanoi(int_Num - 1, strA, strC, strB) '这里调用时 init_Num-1 才是1
Print "Move " & strA & " to " & strC
Call Hanoi(int_Num - 1, strB, strA, strC)
End If
End Sub
当int_Num=2 执行
Call Hanoi(int_Num - 1, strA, strC, strB)
即Call Hanoi(1, strA, strC, strB)
随即调用 If int_Num = 1 Then
Print "Move " & strA & " to " & strC
因为此时hanoi的参数是(1,strA,strC,strB)后两参数互换换位置了
第一步结果就是 :Move 第一根柱子 to 第二根柱子
然后执行下一句Call Hanoi(int_Num - 1, strB, strA, strC)
即Call Hanoi(1, strB, strA, strC)
继续调用If int_Num = 1 Then
Print "Move " & strA & " to " & strC
第二步的结果就是:Move 第二根柱子 to 第三根柱子 啊
但是运行结果第二步却是 Move 第一根柱子 to 第三根柱子
我的分析哪里错了,还有我对call的理解是不是有错
我的分析:
当int_Num=2 执行
Call Hanoi(int_Num - 1, strA, strC, strB)
即Call Hanoi(1, strA, strC, strB)
随即调用 If int_Num = 1 Then
Print "Move " & strA & " to " & strC
因为此时hanoi的参数是(1,strA,strC,strB)后两参数互换换位置了
第一步结果就是 :Move 第一根柱子 to 第二根柱子
中间还有一句:
Print "Move " & strA & " to " & strC
这一句不要忘记了.然后执行下一句Call Hanoi(int_Num - 1, strB, strA, strC)
即Call Hanoi(1, strB, strA, strC)
继续调用If int_Num = 1 Then
Print "Move " & strA & " to " & strC
第二步的结果就是:Move 第二根柱子 to 第三根柱子 啊
但是运行结果第二步却是 Move 第一根柱子 to 第三根柱子
我的分析哪里错了,还有我对call的理解是不是有错
'int_Num=2
Call Hanoi(1, "第一根柱子", "第三根柱子", "第二根柱子")
Print "Move " & "第一根柱子" & " to " & "第二根柱子" Print "Move " & "第一根柱子" & " to " & "第三根柱子"
这里怎么有两句输出语句,我只能分析到第一句输出
这句Print "Move " & "第一根柱子" & " to " & "第三根柱子"
怎么来的?
If int_Num = 1 Then
Print "Move " & strA & " to " & strC
后第一次输出
接着第二次输出,即是Print "Move " & strA & " to " & strC
然后进行到Call Hanoi(int_Num - 1, strB, strA, strC)
继续调用int_num=1的过程
接着第三次输出
谢谢大家指点,菜鸟问题就是多
问的都是大家觉得不是问题的问题
谢谢