求a与b间的升序数,即134, 4567这样的数 下面算法为什么不对。。

[复制链接]
查看11 | 回复2 | 2010-12-13 13:55:34 | 显示全部楼层 |阅读模式
Option Explicit
Option Base 1
Private Function sx(ByVal n As Integer) As Boolean

Dim a() As Integer, k As Integer, i As Integer



Do

k = k + 1

ReDim Preserve a(k)

a(k) = n Mod 10

n = n \ 10

Loop Until n = a(i) Then Exit For


Next i
sx= ture
End Function
Private Sub Command1_Click()
Dim a As Integer, b As Integer, i As Integer
a = Val(Text1): b = Val(Text2)
For i = a To b

If sx(i) Then

List1.AddItem i

End If
Next i
If List1.ListCount = 0 Then List1.AddItem "无升序数"
End Sub

回复

使用道具 举报

千问 | 2010-12-13 13:55:34 | 显示全部楼层
给你个参考Private Function sx(ByVal n As Integer) As Boolean
Dim a() As Byte, i As Integer
a = StrConv(Trim(Str(n)), vbFromUnicode)
For i = 0 To UBound(a) - 1
If a(i) >= a(i + 1) Then Exit Function
Next sx = TrueEnd Function感觉还是应该让你知道你错在什么地方。Private Function sx(ByVal n As Integer) As Boolean
回复

使用道具 举报

千问 | 2010-12-13 13:55:34 | 显示全部楼层
这题如确定都是整数,可使用字符串法PUBLIC FUNCTION ISSXS( M AS LONG ) AS BooleanDIM S AS STRINGS=TRIM(STR(M))DIM I AS LONGDIM J AS LONGDIM Y AS BooleanY=TRUEJ=LEN(S)FOR I=1 TO J-1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行