1. 数学家马达齐在1966年提到一种自重数(也称水仙花数),其各位数字的n次方和等于该数本身。现有一个三位自重数x(非负数),x=100×a+10×b+c,满足a3+b3+c3=x。请你回答下列问题:
(1) 若变量x用于存储某自重数,下列类型最为合适的是(      ) A. 整型 B. 实型 C. 字符串型 D. 布尔型
(2) 请你把下列满足自重数的两个数学条件表达式改写成Python条件表达式:

数学条件表达式

Python条件表达式

x=100×a+10×b+c

a3+b3+c3=x

(3) 表达式x// 10%10的功能是
(4) 请在下表中,填写求自重数x各个数位的表达式。

x

个位数

十位数

百位数

千位数

二位数

-------

-------

三位数

--------

四位数

【考点】
常见数据类型、数组; 运算符、基本运算与表达式;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通
能力提升
换一批
1. 当计算机程序中无法用普通数据类型表示位数较多的乘数和计算结果时,就需要采用高精度乘法。如:当两个各有20位数字的整数相乘时,就无法用长整型(Long)数据类型来表示。高精度乘法运算就是运用数组,用程序模拟列竖式计算的过程。两个正整数进行高精度乘法计算的一般算法如下:

⑴将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组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程序如下:

(1) 请在划线处填入合适代码。

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

(2) 根据本题算法,若输入的两个整数分别为5125和18,则在输出乘法计算结果时,变量length的值为
综合题 困难