题目来源:大工慕课 链接
原题:Visual Basic程序设计教程(第二版)龚沛曾主编,高等教育出版社 实验6-5
作者:Caleb Sung
题目要求
编一函数过程IsH(n)
,对于已知正整数n,判断该数是否是回文数,函数的返回值类型为布尔型。主调程序每输入一个数,调用IsH
函数过程,然后在图形框显示输入的数,对于是回文数显示一个”★”,如下图:
提示
- 所谓回文数是指顺读与倒读数字相同,即指最高位与最低位相同,次高位与次低位相同,依次类推。当只有一位数时,也认为是回文数。
- 回文数的求法,只要对输入的数(按字符串类型处理),利用MID函数从两边往中间逐位比较,若不相同,就不是回文数。
参考代码
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If Not IsNumeric(Text1) Then
MsgBox "输入非数字串,重新输入"
Text1.Text = ""
Text1.SetFocus
Else
If IsH(Text1) Then
Picture1.Print Text1; " ★ "
Else
Picture1.Print Text1
End If
Text1 = ""
End If
End If
End Sub
Function IsH(ss As String) As Boolean
Dim i%, Ls%
IsH = True
ss = Trim(ss)
Ls = Len(ss)
For i = 1 To Ls \ 2
If Mid(ss, i, 1) <> Mid(ss, Ls + 1 - i, 1) Then
IsH = False
Exit Function
End If
Next i
End Function