回 帖 发 新 帖 刷新版面

主题:求助一道数学题编程方法

一个小镇人口是1ABCDE,三年后该小镇人口是ABCDE1,正好是原来的三倍。求:A、B、C、D、E各等于多少?

会的帮忙用QB编个程序。谢谢!

回复列表 (共11个回复)

沙发

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

板凳

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 楼

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 楼

'小弟我很菜的,乡下来的农民。大家不要笑话俺啊。

    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 楼

大家怎么都用暴力呢?

小弟我的代码一下子就可以得出结果。
暴力的话,这么大的范围,可能要等N久吧?

6 楼

小弟我测试过大家的代码了。


小弟是用 Excel VBA 软件测试的。
除了2楼兄的代码没有输出外,另外1楼和3楼的代码都一下子输出了。看起来和小弟自以为很快的代码基本一样快。

暴力一点也不慢啊。

7 楼

小弟刚刚看到 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 楼

当然了,MOZ是一个很强的人啊,非常强的人

9 楼

全错,我绝对不是强人。
任何一个人,只要愿意动脑筋,都可以不费吹灰之力打倒我。

10 楼

错,你确实挺厉害的,确实挺厉害......

我来回复

您尚未登录,请登录后再回复。点此登录或注册