VB 算式
如题A、B、C、D、E、F、X、Y、Z
分别代表1~9间互不相等的九个数字
且组合后ABC<DEF<XYZ
ABC相当于(100A+10B+C),余同。
如何用VB完成左示答案(按升序排列)
我的代码如下
Private Sub Command1_Click()
For A = 1 To 3
For B = 1 To 9
For C = 1 To 9
For D = 1 To 5
For E = 1 To 9
For F = 1 To 9
For X = 1 To 9
For Y = 1 To 9
For Z = 1 To 9
i = 100 * A + 10 * B + C
j = 100 * D + 10 * E + F
k = 100 * X + 10 * Y + Z
If i + j = k And i < j And j < k Then Print i & "+" & j & "=" & k
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
怎么运行时不是我要的结果
我要的是 123+456=789 之类的,并且还死机。
这样的对吗?
Private Sub Command1_Click()
For A = 1 To 3
For B = 1 To 9
For C = 1 To 9
For D = 1 To 5
For E = 1 To 9
For F = 1 To 9
For X = 1 To 9
For Y = 1 To 9
For Z = 1 To 9
DoEvents
i = 100 * A + 10 * B + C
j = 100 * D + 10 * E + F
k = 100 * X + 10 * Y + Z
If i + j = k And i < j And j < k Then Debug.Print (i & "+" & j & "=" & k)
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
这样就不会无反应了(假死) 不过没明白你这段代码是干嘛的...
虽然我懂一点VB但是我看不懂你要做啥 不懂你想表达啥 按理IF,必有ENG IF。。。 明显嵌套太多了~ 需要改进一下算法
你就是想
For A =1 to 999
For B =1 to 999
如果 A<B 则
如果 A、B、A+B 里面没有0 则
打印出 A+B=
你的A-F X、Y、Z互不相等呢 本帖最后由 秋水 于 2016-5-20 13:51 编辑
不明白你要做什么,但你写的这个程序循环嵌套了九层。
你是要找出111-400与111-600之间,相加和不过999的数吗?如果是 python可以这样实现。
for x in range(111,400):
for y in range(111,600):
if x+y<=999:
print(x,'+',y,'=',x+y)
else:
pass
VB不会,试着写一下吧
For i = 111 To 399
For j = 111 To 599
If i + j <= 999 Then Print(i, "+", j, "j", i + j)
Next
Next
试运行了一下你的程序,为了防止死机,在最里面循环里面加了个DoEvents,运行了好几分钟都没运行完,应该是循环套的太多了,下面是部分运行结果,希望能帮助到你
111+113=224
111+114=225
111+115=226
111+116=227
111+117=228
111+118=229
111+121=232
111+122=233
111+123=234
111+124=235
111+125=236
111+126=237
111+127=238
111+128=239
111+131=242
111+132=243
111+133=244
111+134=245
111+135=246
111+136=247
111+137=248
111+138=249
111+141=252
111+142=253
111+143=254
111+144=255
111+145=256
111+146=257
111+147=258
111+148=259
111+151=262
111+152=263
111+153=264
111+154=265
111+155=266
111+156=267
111+157=268
111+158=269
111+161=272
111+162=273
111+163=274
111+164=275
111+165=276
111+166=277
111+167=278
111+168=279
111+171=282
111+172=283
111+173=284
111+174=285
111+175=286
111+176=287
111+177=288
111+178=289
111+181=292
111+182=293
111+183=294
111+184=295
111+185=296
111+186=297
111+187=298
111+188=299
111+211=322
111+212=323
111+213=324
111+214=325
111+215=326
111+216=327 算法不合理。需改算法,9层嵌套太多
页:
[1]
2