VB.NET 编程 关于回文数的题目。

VB.NET 编程 关于回文数的题目。
自定义函数,编写IsH(n),对于已知正整数n,判断该数是否是回文数,函数的返回值类型为布尔型。主调程序每输入一个数,调用IsH函数过程,然后在Label标签中显示输入的数,对于回文数显示一个“★”。提示1,回文数是指顺读与倒读字数相同,即最高位与最低位相同,次高位与次低位相同。以此类推。当只有一位数时,也认为是回文数。2.回文数的求法,只要对输入的数(按字符串类型处理),利用Mid函数从两边往中间比较。
求编程高手帮忙解决一下。
在WinForm项岁脊哗目的窗体上添加一个按钮和文本框,然野芹后把下面的代码粘贴上去就可以了。
Public Function lsH(ByVal n As String) As String
Dim s1 As String = ""
Dim s2 As String = ""
Dim i As Integer = 0
Dim j As Integer

If n.Length = 1 Then
Return ("是回文数")

Else
If Tell_JiOu(n.Length) = 1 Then
j = (n.Length + 1) /乎行 2
s1 = Mid(n, 1, j)
Else
j = n.Length / 2 + 1
s1 = Mid(n, 1, j - 1)
End If
For i = n.Length To j Step -1
s2 = s2 + Mid(n, i, 1)
Next
If s1 = s2 Then
Return "是回文数"
Else
Return "不是回文数"
End If
End If

End Function
'判断一个整数的奇偶
Public Function Tell_JiOu(ByVal k As Integer) As Integer
If k Mod 2 = 0 Then
Return 2
Else
Return 1
End If
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click

Button.Text = lsH(TextBox1.Text)

End Sub
Private Function ish(ByVal n As Integer) As Boolean
Dim i As Integer
Dim iArr(20) As Integer
Dim j As Integer
Dim r As Boolean

i = 1
Do While True
If n > 0 Then
iArr(i) = n Mod 10
i = i + 1
n = n / 10
Else
Exit Do
End If
Loop

r = True
For j = 1 To i / 2
If iArr(j) = iArr(i - j) Then
Else
r = False
Exit For
End If
Next
Return r
End Function
你可以先换个思路,你这样的太复杂源迅了。
回文数,可以将其转换为字符串,并将其反转,如果反转后的内容与反转之前的相同,就是回文数。你按这个思路来,会方便很多的。
以下是枯裂尘上述思路的函数,没禅复制就能用:
Private Function CheckH(ByVal n As Decimal) As Boolean
Dim temp As String = String.Empty
temp = Strings.StrReverse(n.ToString)
If temp = n.ToString Then
Return True
Else
Return False
End If
End Function
← 上一篇: 下一篇: →