2017-03-08 129 views
0

我的目标是覆盖所有可能的方程式(整数)以获得特定数字并将结果提取到文本文件。Visual Basic 6 ::涵盖所有方程以获得特定结果

这里是我当前的VB6代码:

Private Sub Form_Load() 

Dim myFile, parameterA, parameterB, parameterC, equalTo As Integer 
myFile = FreeFile 

equalTo = 10 

parameterA = 0 
parameterB = 0 
parameterC = 0 

parameterA = equalTo 

Open App.Path + "\gangina.txt" For Output As #myFile 

Do 

Print #myFile, Format(parameterA, "00") & " + " & Format(parameterB, "00") & " + " & Format(parameterC, "00") & " = " & equalTo 

parameterA = parameterA - 1 
parameterB = parameterB + 1 

Loop Until parameterA < 0 

Close #myFile 

End Sub 

电流输出:

10 + 00 + 00 = 10 
09 + 01 + 00 = 10 
08 + 02 + 00 = 10 
07 + 03 + 00 = 10 
06 + 04 + 00 = 10 
05 + 05 + 00 = 10 
04 + 06 + 00 = 10 
03 + 07 + 00 = 10 
02 + 08 + 00 = 10 
01 + 09 + 00 = 10 
00 + 10 + 00 = 10 

(......显然)我期待得到:

等...

谢谢! :)

+0

是否顺序有关系吗?看起来你只需要添加一个从(equalTo - parameterA)到0的内部循环。外部循环将parameterA从等于0递减到0.内部循环将参数B从(equalTo - parameterA)递减到0并且你只计算参数C 。你可以用For循环代替Do循环。 – Marc

+0

请注意,Dim myFile,parameterA,parameterB,parameterC,equalToAs Integer'声明myFile和参数变量为Variant,而非Integer。 – HardCode

回答

1

对于这样do循环

Do 
    parameterB = equalTo - parameterA 

    Do 
     parameterC = equalTo - parameterA - parameterB 

     Print #myFile, Format(parameterA, "00") & " + " & Format(parameterB, "00") & " + " & Format(parameterC, "00") & " = " & equalTo 

     parameterB = parameterB - 1 
    Loop Until parameterB < 0 

    parameterA = parameterA - 1 
Loop Until parameterA < 0 

随着for循环

For parameterA = equalTo To 0 Step -1 
    For parameterB = (equalTo - parameterA) To 0 Step -1 
     parameterC = equalTo - parameterA - parameterB 

     Print #myFile, Format(parameterA, "00") & " + " & Format(parameterB, "00") & " + " & Format(parameterC, "00") & " = " & equalTo 
    Next parameterB 
Next parameterA 
+0

非常感谢! :) – PUG