[Visual Basic 6.0] 大整數運算 大數減法 (使用 Array 字串)

摘要:[Visual Basic 6.0] 大整數運算 大數減法 (使用 Array 字串)

[Visual Basic 6.0] 大整數運算 大數減法 (使用 Array 字串)

 

大數的四則運算中,乘法與除法比較麻煩,尤其是除法!但加法與減法就容易多了!

它需要考慮的比較少,我的習慣作法都會先將需要運算的兩數變成相同位數,再放到陣列裡面去做處理。

這樣一來運算也變得更像日常生活中的直式運算。只要遇到大數問題,最好的方法是從加與減下手,乘法除法也是如此!

 

 


'# [Visual Basic 6.0] 大整數運算 大數減法 (使用 Array 字串)
'# 0xDe
Private Sub Command1_Click()

Text3 = ""

NowA = Text1
NowB = Text2

' 將兩者皆補成同為數
Do Until Len(NowA) = Len(NowB)
    NowB = "0" & NowB
Loop

ReDim TxA(1 To Len(NowA))
ReDim TxB(1 To Len(NowB))

For I = 1 To Len(NowA)
    TxA(I) = Mid(NowA, I, 1)
    TxB(I) = Mid(NowB, I, 1)
Next I

For I = Len(NowA) To 1 Step -1
    If Val(TxB(I)) > Val(TxA(I)) Then ' 當不足時需要跟前面借位
        X = I ' 紀錄目前位置
        Do Until Val(TxA(X)) <> 0
            X = X - 1
        Loop
        
        TxA(X) = Val(TxA(X)) - 1
        For J = (X + 1) To I - 1
            TxA(J) = Val(TxA(J)) + 9
        Next J
        TxA(I) = Val(TxA(I)) + 10
    End If
    TxA(I) = Val(TxA(I)) - Val(TxB(I))
    Text3 = TxA(I) & Text3
Next I

Do Until Val(Mid(Text3, 1, 1)) <> 0 Or Len(Text3) = 1
    Text3 = Mid(Text3, 2)
Loop

End Sub

 

[Visual Basic 6.0] 大數減法.rar

#0xDe 從分享中學習

#Facebook:ProgrammerDe (https://www.facebook.com/MicrosoftDes) 有問題歡迎提問