⑴将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组a(1)、a(2)、…、a(La)中,将另一个整数各位上的数字按照从低位到高位的顺序依次存入数组b(1)、b(2)、…、b(Lb)中。其中,La表示第一个整数的位数,Lb表示第二个整数的位数;
⑵按照从低位到高位的顺序,将两个整数各位数值进行逐位乘法计算(第一轮先让b(1)依次乘以a(1)、a(2)、…、a(La),第二轮再让b(2)依次乘以a(1)、a(2)、…、a(La),依次进行),每位的乘法结果也按照低位到高位的顺序依次存入数组ans(1)、ans(2)、ans(3)…中;
⑶对数组ans中的计算结果进行从低位到高位的进位处理;
⑷统计数组ans中实际计算结果的有效数值位数,并将位数值存入变量length;
⑸按照高位到低位的顺序输出数组ans中的计算结果。
小强按照上述方法设计了一个两数进行高精度乘法计算的VB程序,功能如下:在文本框Text1和Text2中依次输入两个整数,单击“计算”按钮Command1,程序进行高精度乘法计算,并在标签Label4中输出计算结果。下面信息显示了进行高精度乘法计算的主要过程(假设输入的两个整数分别为“123”和“45”):
图a
图b
程序运行效果如图所示。
图c
实现上述功能的VB程序如下:
Dim a(1 To 30)As Integer, b(1 To 30) As Integer, ans (1 To 60) As Integer
Dim La As Integer, Lb As Integer, length As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer, temp As String
'将两个乘数(正整数)各数位上的数字按照上述算法依次存入数组a和b,每个正整数位数分别保存到变量La和Lb;将保存结果的数组ans(i)值初始化为零(该部分程序代码略)
For i=1 To Lb
For j=1 To La
ans(i+j-1) =
Next j
Next i
For i=1 To La+Lb
ans(i+1)=ans(i+1)+ans(i)\10
ans(i)=
Next i
length=La+Lb
Do While ans(length)=0
length=length-1
Loop
For i= To 1 Step -1
Label4.Caption=Label4.Caption&Str(ans(i))
Next i
End Sub