找出所有4位数的升序数和回文数,使用函数实现回文数和升序数的判断。用VB编程,求高手指点,马上啊。

1、单击“回文数”按钮,找出所有4位数中的回文数。2、单击“升序数”按钮,找出所有4位数中的升序数。3、使用函数实现回文数和升序数的判断。... 1、单击“回文数”按钮,找出所有4位数中的回文数。
2、单击“升序数”按钮,找出所有4位数中的升序数。
3、使用函数实现回文数和升序数的判断。
展开
 我来答
xlzzc
2011-12-16 · TA获得超过7302个赞
知道大有可为答主
回答量:4205
采纳率:50%
帮助的人:1711万
展开全部

VB6.0版本的可以吗?

我用的是构成法。

Option Explicit

Dim a, b, c, d, n

Private Sub Command1_Click()

For a = 1 To 9

For b = 0 To 9

n = a * 1000 + b * 100 + b * 10 + a

List1.AddItem n

Next

Next

End Sub

Private Sub Command2_Click()

For a = 1 To 6

For b = a + 1 To 7

For c = b + 1 To 8

For d = c + 1 To 9

n = a * 1000 + b * 100 + c * 10 + d

List2.AddItem n

Next

Next

Next

Next

End Sub

上面用的是构成法。

判断的: 

Option Explicit

Dim s(4)

'回文数,用函数判断法

Private Sub Command1_Click()

Dim n As Integer

    For n = 1001 To 9999

         If (huiwenNun(n)) Then List1.AddItem n

    Next

End Sub

'采用数字分离法

Function huiwenNun(n As Integer) As Boolean

    Dim a, b, c, d

       a = Int(n / 1000)

        b = Int((n - a * 1000) / 100)

        c = Int((n - a * 1000 - b * 100) / 10)

        d = n - a * 1000 - b * 100 - c * 10

        If a = d And b = c Then huiwenNun = True

End Function

'升序数,没有重复数字的

Private Sub Command2_Click()

Dim n As Integer

    'For n = 1000 To 9999

    For n = 1234 To 6789

         If (sxNun(1234)) Then List2.AddItem n

   Next

End Sub

'与上面不用的数字分离方法。还可以“按位”提取数字

Function sxNun(n As Integer) As Boolean

    s(1) = Mid(n, 1, 1)

    s(2) = Mid(n, 2, 1)

    s(3) = Mid(n, 3, 1)

    s(4) = Mid(n, 4, 1)

    If s(1) < s(2) And s(2) < s(3) And s(3) < s(4) Then sxNun = True

End Function

新民影音
2011-12-16 · 经典歌曲视频、名人名家歌曲视频
新民影音
采纳数:1792 获赞数:21144

向TA提问 私信TA
展开全部
Dim I As Long
Private Sub Command1_Click()
For I = 1000 To 9999
If Sxs(I) Then List1.AddItem I
Next I
End Sub
Private Sub Command2_Click()
For I = 1000 To 9999
If Hws(I) Then List2.AddItem I
Next I
End Sub
Private Sub Form_Load()
Command1.Caption = "升序数"
Command2.Caption = "回文数"
End Sub
Private Function Sxs(IntSxs As Long) As Boolean
'判断一个数是不是升序数
Dim StrSxs As String, I As Integer
StrSxs = LTrim(Str(IntSxs))
Sxs = True
For I = 1 To Len(StrSxs) - 1
If Mid(StrSxs, I + 1, 1) <= Mid(StrSxs, I, 1) Then
Sxs = False
Exit Function
End If
Next I
End Function
Private Function Hws(IntHws As Long) As Boolean
'判断一个数是不是回文数
Dim StrHws As String, I As Integer
Hws = True
StrHws = LTrim(Str(IntHws))
For I = 1 To Int((Len(StrHws) + 1) / 2)
If Mid(StrHws, I, 1) <> Mid(StrHws, Len(StrHws) - I + 1, 1) Then
Hws = False
Exit Function
End If
Next I
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
衫达智和
2011-12-21 · 超过18用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:33.9万
展开全部
。。。。。。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式