vbnet回文数 vb 回文数

VB.NET 编写函数过程IsH(n) 判断是否为回文数

你的i = Len(Str(a))会出问题。

创新互联建站专业为企业提供易门网站建设、易门做网站、易门网站设计、易门网站制作等企业网站建设、网页设计与制作、易门企业网站模板建站服务,十载易门做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

If i 1 Then

Return True

End If

这个返回在if内部,当条件不满足将导致函数无返回。

以下代码仅供参考:

Function IsH(ByVal a As Long) As Boolean

Dim i As Long, j As Long, t As String

t = a.ToString

i = t.Length

Select Case i

Case 1

Return True

Case 2

If Mid(t, 1, 1) = Mid(t, 2, 1) Then Return True Else Return False

Case 3

If Mid(t, 1, 1) = Mid(t, 3, 1) Then Return True Else Return False

Case Else

For j = 1 To i \ 2

If Mid(t, j, 1) Mid(t, i - j + 1, 1) Then Return False

Next j

End Select

Return True

End Function

vb中什么是回文数

错误1:变量c没有定义,无法确定是全局变量,还是局部变量

错误2:If Left(i, j) = Right(i, j) Then 这句有问题,应该用MID函数

错误3: 循环中有问题,即使前面若干次huiwen = False ,而最后一次huiwen = True ,也会被程序误判断为回文数

问题4: Command1_Click中 i变量没有必要定义,直接传递Text1.Text就可以了

问题5: Function huiwen(i As String) 后没有定义类型

好的习惯1: 最好定义每一个变量,j变量没有定义

好的习惯2: i,j,k 一般是循环变量,不要把它们做为参数传递

按照你的思路,修改如下:

Function huiwen(hw As String) As Boolean

Dim j As Integer

Dim c As Integer

c = Len(hw)

huiwen = True

For j = 1 To c / 2

If Mid(hw, j, 1) Mid(hw, c - j + 1, 1) Then

huiwen = False

Exit For

End If

Next

End Function

Private Sub Command1_Click()

If huiwen(Text1.Text) = True Then

MsgBox "回文"

Else

MsgBox "非回文"

End If

End Sub

vb.net 回文数函数

判断一个数是否为回文数吗?

 

Private Function IsH(a As String) As Boolean

Dim l As Integer

l = Len(a)

IsH = True

For i = 1 To l / 2

If Mid(a, i, 1)  Mid(a, l + 1 - i, 1) Then

IsH = False

Exit For

End If

Next i

End Function

用这个函数

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

在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

VB 回文数

在数学中也有这样一类数字有这样的特征,成为回文数(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


分享文章:vbnet回文数 vb 回文数
分享URL:http://ybzwz.com/article/dososej.html