1. 有趣的乘法:输入一个个位数不是5的奇数p,寻找一个整数s,使得p×s = 1111...1(每位数字均为1),要求输出整数s及它们乘积中1的个数(即乘积有几个1构成)。例如,当p=13时,13*8547=111111,因此整数s为8547,乘积由6个1构成;当p=23时,整数s为48309178743961352657,乘积由22个1构成。

算法思想:

首先生成一个比p大的全1数a,如果a能整除p,则算法结束,否则继续扩大a的位数,如此继续,直至a整除p。

程序运行界面如下图所示,在文本框Text1中输入整数p,单击“计算”按钮,在文本框Text2中输出整数s,在文本框Text3中输出乘积中1的个数。

小明依据上述描述设计如下VB程序。请回答下列问题:

(1) 当p=3时,整数s为
(2) 请在划线处填入合适的语句。

Private Sub Command1_Click()

    Dim p As Long, a As Long, b As Long, c As Long, n As Long

    Dim s As String  '存放整数s,因为该数较大,因此采用字符串存储

    Do While True   '判断输入的整数p是否为个位不是5的奇数

        p = Val(Text1.Text)

        If p Mod 2 < > 0 And p Mod 5 < > 0 Then Exit Do

    Loop

    a = 0

    n = 0

    Do While a < p

        

        n = n + 1

    Loop

    c = a Mod p

    s = Str(a \ p)

    Do While c < > 0

        a = c * 10 + 1

        

        s = s & b

        n = n + 1

        

    Loop

    Text2.Text = s

    Text3.Text = Str(n)

End Sub

【考点】
循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通
能力提升
真题演练
换一批