巧用数组实现长整数的精确计算(1)(2)
2015-05-13 01:41
导读:源程序如下:Dim a(), b(), c() As Byte '定义输入和输出数组 Sub Main() ts = "整数乘法" xx = InputBox("请输入被乘数:", ts) If xx = "" The n End yy = InputBox("请输入乘数",
源程序如下:Dim a(), b(), c() As Byte '定义输入和输出数组
Sub Main()
ts = "整数乘法"
xx = InputBox("请输入被乘数:", ts)
If xx = "" The n End
yy = InputBox("请输入乘数", ts)
If yy = "" Then End
a1 = Len(xx) '取xx的位数
b1 = Len(yy) '取yy的位数
c1 = a1 b1 '确定结果的最大位数
ReDim a(a1), b(b1), c(c1) '重定义数组
For i = 1 To a
a(i) = Mid(xx, a1 - i 1, 1) '给数组a的每一位赋值
If Not IsNumeric(a(i)) Then '检查输入的合法性
MsgBox "被乘数输入错误", , ts
End
End If
Next i
For i = 1 To b1
b(i) = Mid(yy, b1 - i 1, 1) '给数组b的每一位赋值
If Not IsNumeric(b(i)) Then '检查输入的合法性
MsgBox "乘数输入错误", , ts
End
End If
Next i
For i = 1 To c1 '结果数组c初始化
c(i) = 0
Next i
For i = 1 To b1 '取b中的每一位
For j = 1 To a1 '取a中的每一位
c(j i - 1) = c(j i - 1) b(i) * a(j) '相乘结果累加到c中的相应位
zz = c(j i - 1)
k = 0
Do While zz