VB高精度乘法 代码

来源:百度知道 编辑:UC知道 时间:2024/06/28 21:54:34
一、高精度乘法基本思想和加法一样。其基本流程如下:
①读入被乘数s1,乘数s2
②把s1、s2分成4位一段,转成数值存在数组a,b中;记下a,b的长度k1,k2;
③i赋为b中的最低位;
④从b中取出第i位与a相乘,累加到另一数组c中;(注意:累加时错开的位数应是多少位?)
⑤i:=i-1;检测i值:小于k2则转⑥,否则转④
⑥打印结果
请朋友们严格按照题目 而且是 VB

我没有用你的提供的方法,不过一样也实现了
传入参数是两个字符型的数字,可以计算几千位的乘法也没问题

Private Sub Form_Click()
Dim S1 as string,S2 as string
S1="2385290385102580215818501924820348902395780995725252356236"
S2="1234124923785720589204529017401750734892357947623895893465"
Print ChengFa(S1,S2)
End Sub

Function ChengFa(ByVal M As String, ByVal N As String) As String
'用于大数相乘
Dim A() As Integer, B() As Integer, S() As Integer
ReDim A(Len(M)) As Integer, B(Len(N)) As Integer, S(Len(M) + Len(N)) As Integer
For i = 1 To Len(M)
A(i) = Val(Mid(StrReverse(M), i, 1))
Next
For i = 1 To Len(N)
B(i) = Val(Mid(StrReverse(N), i, 1))
Next

For i = 1 To Len(M)
For j = 1 To Len(N)
S(i + j - 1) = S(i + j - 1) + A(i) * B(j)
Next
Next
For i = 1 To Len(M) + Len(N)
If S(i) > 9 Then