【问题标题】:Visual Basic 6 :: Cover all equations to get a specific outcomeVisual Basic 6 :: 涵盖所有方程式以获得特定结果
【发布时间】:2017-03-08 13:00:34
【问题描述】:

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

这是我当前的 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

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

10 + 00 + 00 = 10
00 + 10 + 00 = 10
00 + 00 + 10 = 10

09 + 01 + 00 = 10
09 + 00 + 01 = 10

等等……

谢谢! :)

【问题讨论】:

  • 顺序重要吗?看起来您只需要添加一个从 (equalTo - parameterA) 到 0 的内部循环。外部循环将 parameterA 从 equalsTo 递减到 0。内部循环将 parameterB 从 (equalTo - parameterA) 递减到 0。您只需计算 parameterC .你可以用 For 循环而不是 Do 循环来做到这一点。
  • 请注意,Dim myFile, parameterA, parameterB, parameterC, equalTo As Integer 将 myFile 和参数变量声明为 Variant,而不是 Integer。

标签: loops math vb6 basic


【解决方案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

【讨论】:

    猜你喜欢
    • 2011-08-10
    • 2023-04-07
    • 1970-01-01
    • 2020-10-13
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多