题型:综合题 题类:常考题 难易度:普通
浙江省高中信息技术 高精度计算问题练习
⑴将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组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中输出计算结果。
实现上述功能的VB程序如下:
Dim a(1 To 30) As Integer, b(1 To 30) As Integer
Dim ans(1 To 60) As Integer
Dim La As Integer, Lb As Integer
Dim 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) = + b(i) * a(j)
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
a=[20,32,56,12,48] maxx=a[0] for k in ①: if maxx<k: ② print( ③ ) |
试题篮