吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5233|回复: 18
收起左侧

[其他转载] VB 算式

[复制链接]
ghoob321 发表于 2016-5-20 12:26
如题
[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
A、B、C、D、E、F、X、Y、Z
分别代表1~9间互不相等的九个数字
且组合后ABC<DEF<XYZ
ABC相当于(100A+10B+C),余同。
如何用VB完成左示答案(按升序排列)
我的代码如下
[Visual Basic] 纯文本查看 复制代码
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   之类的,并且还死机。

VB 算式

VB 算式



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

seemk 发表于 2016-5-20 14:46
这样的对吗? QQ截图20160520144630.png
爲妳¢執著 发表于 2016-5-20 14:35
[Visual Basic] 纯文本查看 复制代码
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



这样就不会无反应了(假死)   不过没明白你这段代码是干嘛的...
smisjk62 发表于 2016-5-20 12:43
q183553 发表于 2016-5-20 13:01
不懂你想表达啥
zrz444 发表于 2016-5-20 13:09
按理IF,必有ENG IF。。。
dearcia 发表于 2016-5-20 13:10
明显嵌套太多了~
dearcia 发表于 2016-5-20 13:17
需要改进一下算法
你就是想
For A =1 to 999
For B =1 to 999
如果 A<B 则
如果 A、B、A+B 里面没有0 则
    打印出 A+B=
ufo0033 发表于 2016-5-20 13:24
你的A-F    X、Y、Z互不相等呢
秋水 发表于 2016-5-20 13:36
本帖最后由 秋水 于 2016-5-20 13:51 编辑

不明白你要做什么,但你写的这个程序循环嵌套了九层。

你是要找出111-400与111-600之间,相加和不过999的数吗?如果是 python可以这样实现。
[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不会,试着写一下吧
[Visual Basic] 纯文本查看 复制代码
For i = 111 To 399
            For j = 111 To 599
                If i + j <= 999 Then Print(i, "+", j, "j", i + j)
            Next
        Next

sunyshen 发表于 2016-5-20 14:18
试运行了一下你的程序,为了防止死机,在最里面循环里面加了个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
天使无声 发表于 2016-5-20 14:32
算法不合理。需改算法,9层嵌套太多
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 06:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表