主题:求助一道数学题编程方法
heygod
[专家分:0] 发布于 2008-02-29 18:15:00
一个小镇人口是1ABCDE,三年后该小镇人口是ABCDE1,正好是原来的三倍。求:A、B、C、D、E各等于多少?
会的帮忙用QB编个程序。谢谢!
回复列表 (共11个回复)
沙发
matthew9671 [专家分:50] 发布于 2008-03-02 20:33:00
cls
for i = 112345 to 199999
if mid$(str$(i),3,5)=mid$(str$(i*3),2,5) and i*3 mod 10 = 1 then
print "a=";mid$(str$(i),3,1)
print "b=";mid$(str$(i),4,1)
print "c=";mid$(str$(i),5,1)
print "d=";mid$(str$(i),6,1)
print "e=";mid$(str$(i),7,1)
end if
next i
end
板凳
hxy_anhui [专家分:320] 发布于 2009-01-31 10:37:00
CLS
FOR A = 1 TO 5
FOR B = 1 TO 5
FOR C = 1 TO 5
FOR D = 1 TO 5
FOR E = 1 TO 5
IF (100000 + A * 10000 + B * 1000 + C * 100 + D * 10 + E) * 3 = A * 100000 + B * 10000 + C * 1000 + D * 100 + E * 10 + 1 THEN PRINT A; B; C; D; E
NEXT E
NEXT D
NEXT C
NEXT B
NEXT A
END
3 楼
天天和和 [专家分:1420] 发布于 2009-03-05 23:42:00
CLS
FOR A = 1 TO 9: FOR B = 1 TO 9
FOR C = 1 TO 9: FOR D = 1 TO 9
FOR E = 1 TO 9
X =(100000 + A * 10000 + B * 1000 + C * 100 + D * 10 + E) * 3
Y = A * 100000 + B * 10000 + C * 1000 + D * 100 + E * 10 + 1
IF X = Y THEN PRINT A; B; C; D; E
NEXT E, D, C, B, A
END
4 楼
imjohnzj [专家分:1490] 发布于 2009-03-09 23:48:00
'小弟我很菜的,乡下来的农民。大家不要笑话俺啊。
Dim Result(5) As Integer 'N
Dim N(6) As Integer ' * 3
Dim M(6) As Integer '--------
'M
Dim Guess(10) As Integer
Dim i As Integer
Dim t As Integer
'How to Guess
For i = 0 To 9
read Guess(i)
Next i
Data 0, 7, 4, 1, 8, 5, 2, 9, 6, 3
'init
N(0) = 1
M(5) = 1
For i = 5 To 1 Step -1
'Guess Value
t = Guess(M(i))
'Put Digit
Result(i - 1) = t
M(i - 1) = t
N(i) = t
'Remove digit
M(i - 1) = M(i - 1) - Fix(t * 3 \ 10)
Next i
If Fix(Result(0) * 3 / 10) = N(0) Then
For i = 0 To 4
Print Chr(65 + i); "=", Result(i)
Next i
Else
Print "No Result!"
End If
5 楼
imjohnzj [专家分:1490] 发布于 2009-03-09 23:53:00
大家怎么都用暴力呢?
小弟我的代码一下子就可以得出结果。
暴力的话,这么大的范围,可能要等N久吧?
6 楼
imjohnzj [专家分:1490] 发布于 2009-03-10 00:25:00
小弟我测试过大家的代码了。
小弟是用 Excel VBA 软件测试的。
除了2楼兄的代码没有输出外,另外1楼和3楼的代码都一下子输出了。看起来和小弟自以为很快的代码基本一样快。
暴力一点也不慢啊。
7 楼
imjohnzj [专家分:1490] 发布于 2009-03-10 00:28:00
小弟刚刚看到 moz 兄的代码,那才叫经典:
Sub moz()
s = 1
z$ = ""
For i = 1 To 26
s = s*7 mod 10
z$ = Chr$(48 + s) + z$
s = s - s * 3 \ 10
Next
Debug.Print z$
End Sub
8 楼
强强 [专家分:4740] 发布于 2009-03-10 19:18:00
当然了,MOZ是一个很强的人啊,非常强的人
9 楼
moz [专家分:37620] 发布于 2009-03-10 22:24:00
全错,我绝对不是强人。
任何一个人,只要愿意动脑筋,都可以不费吹灰之力打倒我。
10 楼
强强 [专家分:4740] 发布于 2009-03-12 09:50:00
错,你确实挺厉害的,确实挺厉害......
我来回复