首先说明什么是回文数:左右对称的自然数称回文数。如121,4224,13731等
你所出的题目是求三位数以内的所有回文数,所以只要判断第一位和第三位的数字是否一样,一样则为回文数。
代码如下:
Private
Sub
Command1_Click()
For
i
=
100
To
999
'100到999循环
a$
=
Trim$(Str(i))
'转换成字符串
b
=
Left$(a$,
1)
'截取左边第一位
d
=
Right$(a$,
1)
'截取右边第一位
If
b
=
d
Then
'判断左右是否相等,相等既是回文数
T1Text
=
T1
+
Str(i)
End
If
Next
End
Sub
Private Sub Command1_Click()
Dim I As Long, J As Long
Dim X1 As Long, X2 As Long
Dim str As String
Dim Flag As Boolean
str = "从 10000 到 99999 之间的回文数有:" & vbCrLf
For I = 10000 To 99999
Flag = False
For J = 1 To Len(CStr(I))
If Mid(CStr(I), J, 1) <> Mid(CStr(I), Len(CStr(I)) - J + 1, 1) Then
Flag = True
Exit For
End If
Next J
If Flag = False Then str = str & I & " "
Next I
MsgBox str
End Sub
Public Function ish(dblInput As Double) As Boolean '输入参数为Double类型,返回Boolean
Dim strTemp As String
Dim i As Integer
Dim n As Integer
strTemp = CStr(dblInput) '转换输入为字符串类型
n = CInt(Len(strTemp) / 2) '取字符串长度的一半,如果长度为偶数,则两侧全部参加比较,
'如果为奇数,则中间位不必比较。
For i = 1 To n
If Mid(strTemp, i, 1) <> Mid(strTemp, Len(strTemp) - i + 1, 1) Then '比较左右两端。
ish = False
Exit Function ‘发现有一次比较不相等,可以确定不是回数,退出函数,返回False。
End If
Next
ish = True
End Function
问题出在循环数i,经过循环后,如果是回文数,i=n+1,因此打印的是“不是回文数”。
应修改If
i
=
n
Then为If
i
=
n+1
Then
Private Sub Command1_Click()
For i = 498 To 100 Step -3
a = i \ 100
b = i Mod 10
If a = b Then Exit For
Next i
Print "100~500之间能被3整除的最大回文数="; i
End Sub
以上就是关于VB编程求出100~999之间的所有回文数,并按行输出全部的内容,包括:VB编程求出100~999之间的所有回文数,并按行输出、求VB高手:编写程序,找出10000~99999的所有回文数!、编写vb程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)