Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Dim k As Integer
Dim s As String
s = Val(InputBox(""))
For k = 1 To Len(s) / 2
If Mid(s, k, 1) <> Mid(s, (Len(s) - k + 1), 1) Then Exit For
Next k
If k > Len(s) / 2 Then
MsgBox(s & "是回文数")
Else
MsgBox(s & "不是回文数")
End If
End Sub
End Class
---------------------------------------------------------------------------------
原理不清楚,请问为什么要这么写啊?
VB 回文数
答案:2 悬赏:40 手机版
解决时间 2021-02-20 12:19
- 提问者网友:献世佛
- 2021-02-19 12:24
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-02-19 13:13
在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
注意:
1.偶数个的数字也有回文数124421
如:1234321
Len(s) / 2=7/2=3.5
k = 1,Mid(s, k, 1)=1,Mid(s, (Len(s) - k + 1), 1)=Mid(s, (7 -1 + 1), 1)=1
k = 2,Mid(s, k, 1)=2,Mid(s, (Len(s) - k + 1), 1)=Mid(s, (7 -2 + 1), 1)=2
……
如果k = 3,为假,就退出循环,
If k > Len(s) / 2 Then
k=3< Len(s) / 2 =3.5
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
注意:
1.偶数个的数字也有回文数124421
如:1234321
Len(s) / 2=7/2=3.5
k = 1,Mid(s, k, 1)=1,Mid(s, (Len(s) - k + 1), 1)=Mid(s, (7 -1 + 1), 1)=1
k = 2,Mid(s, k, 1)=2,Mid(s, (Len(s) - k + 1), 1)=Mid(s, (7 -2 + 1), 1)=2
……
如果k = 3,为假,就退出循环,
If k > Len(s) / 2 Then
k=3< Len(s) / 2 =3.5
全部回答
- 1楼网友:北方的南先生
- 2021-02-19 14:19
private sub command1_click() '第一问
dim i as long
cls
for i = 1 to 1000
if hws(i + 2013) then print i
next i
end sub
private sub command2_click() '第二问
dim i as long
cls
for i = 1 to 1000
if hws(i + 2013) and hws(i) then print i
next i
end sub
private function hws(n as long) as boolean '判断回文数的函数
if strreverse(cstr(n)) = cstr(n) then hws = true
end function
strreverse()函数的作用是将字符串反转,例如“abcd“反转后为”dcba“。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯