①从右往左扫描,找第一个非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 istep1 =True:step2 = False 'step1对应步骤①,step2对应现步骤②
zero =0:cnt=1
For i=1 To length
If.step1 =True Then
If a(i)="0" Thenzero = 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" ThenIf 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
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