学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
输入一个正整数N,寻找一个比N大且最接近N的整数,要求这个数的每位数字之和与N的每位数字之和相同。例如N=1231,则满足上述条件的最接近N的整数为1240。为了解决此问题,设计算法如下:
①从右往左扫描,找第一个非0数字,将该数字减1后移到最后面。
②在当前位置继续往左扫描,找第一个非9的数字,若遇到,将该数字加1,结束;若遇到9,将其移到最后面,重复执行②。
③若扫描完没有加1,则最前面补“1”。
例如:N=199000,按照上述算法的处理过程是:199000→190008→100089→200089,满足条件的最接近的数是200089。

(1)若输入N=99900,则满足条件的最接近的数为_______________。
(2)实现上述功能的VB代码如下,请在划线处填入适当的代码。
①处代码______________;②处代码______________;③处代码______________。
Private Sub Command1_Click()
Dim a(1 To 50)As String
Dim n As String, step1 As Boolean, step2 As Boolean Dim i As Integer, length As Integer, zero As Integer, cnt As Integer
n = Text1.Text
length = Len(n)
'将数字串n从右往左依次存储在数组a中。
For i =1 To length

a(i)=    

Next i
step1 =True:step2 = False    'step1对应步骤①,step2对应现步骤②
zero =0:cnt=1
For i=1 To length

If.step1 =True Then

If a(i)="0" Then
zero = zero +1
Else
    
If zero > 0 Then
a(cnt)=a(i)
a(i)="0"
End If
step1 =False
step2 = True
End If

ElseIf step2 =True Then

If a(i)="9" Then
If zero =0 Then
t=a(cnt+1):a(cnt+1)=a(cnt):a(cnt)=t
cnt =cnt +1
If i <> cnt Then
a(i)=a(i-1)
End If
Else
    
a(cnt)="9"
a(i)="o"
cnt =cnt + 1
End If
Else
a(i)=a(i)+1
step2 = False
Exit For
End If

End If

Next i
'最前面补"1"
If step2 Then

length =length +1

a(length)="1"

End If
'输出结果,代码略。
End Sub
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交