|

楼主 |
发表于 2024-10-3 19:09
|
显示全部楼层
如下这个乘法程序靠谱但就是速度不快:
Public Function MbC(D1 As String, D2 As String) As String
Dim X, Y ';两数长度
X = Len(D1): Y = Len(D2)
Dim A() As Integer
ReDim A(1 To X + Y, 1 To Y)
Dim I, J, C1, C2, CJ, JW
For J = Y To 1 Step -1 ';D2
JW = 0 ';进位清0
C2 = Mid(D2, J, 1) ';每位数
For I = X To 1 Step -1 ';D1
C1 = Mid(D1, I, 1) ';每位数
CJ = C1 * C2 + JW ';计算乘积
c = I + J: r = Y + 1 - J
A(c, r) = CJ Mod 10 ';本位
JW = CJ \ 10 ';进位
Next
A(c - 1, r) = JW
Next
Dim B() As Integer
ReDim B(1 To X + Y)
JW = 0
For I = X + Y To 1 Step -1
Bit = JW
For J = 1 To Y
Bit = Bit + A(I, J)
Next
B(I) = Bit Mod 10
JW = Bit \ 10
Next
If B(1) > 0 Then
MbC = MbC & B(1)
Else
MbC = MbC
End If
For I = 2 To X + Y
MbC = MbC & B(I)
Next
End Function |
|