用递归如何写下面程序
要求生成的结果例如下面形式(假设3位):
111,112,113......999
我现在需要生成的是N位,如何编写
问题点数:40、回复次数:5Top
1 楼sippey(sippey)回复于 2002-04-15 13:31:55 得分 0
为什么不用循环?Top
2 楼gaoqi5037(高岐)回复于 2002-04-15 13:47:13 得分 0
Private Sub Command1_Click()
Begin 111, 999
MsgBox TStrBegin
End Sub
Sub Begin(ByVal BInt As Integer, ByVal EInt As Integer)
If BInt < EInt Then
TStrBegin = TStrBegin & BInt & ","
Begin BInt + 1, EInt
Else
TStrBegin = TStrBegin & BInt
GoTo Exit_Label
End If
Exit_Label:
TStrBegin = Left(TStrBegin, Len(TStrBegin))
End SubTop
3 楼thunder7971(雷程)回复于 2002-04-15 14:37:25 得分 0
gaoqi5037(高岐)
在前面应该声明private TStrBgegin as string
这样显示就正常了!Top
4 楼gaoqi5037(高岐)回复于 2002-04-15 14:48:58 得分 0
TO thunder7971(雷程)
Thanks
我忘了加了Top
5 楼hlsfe2000hjq(补丁)回复于 2002-04-15 15:15:44 得分 40
Private Sub Command1_Click()
Dim strTest As String
Screen.MousePointer = vbHourglass
strTest = "000" 'or "01" ; or "010"
Text1.Text = GetString(strTest, 100)
Screen.MousePointer = vbDefault
End Sub
Private Function GetString(strBaseValue As String, lngMax As Long) As String
Dim lngTemp As Long
Dim strTemp As String
Dim strFormat As String
On Error GoTo MsgErr '错误捕获
Screen.MousePointer = vbHourglass
'获得字符串格式
strFormat = Space(Len(Trim(Str(lngMax))))
strFormat = Replace(strFormat, Space(1), "0")
'格式化字符串
strBaseValue = Format(strBaseValue, strFormat)
strTemp = ""
lngTemp = CLng(Val(strBaseValue))
'字符串的数值增加
lngTemp = lngTemp + 1
If lngTemp <= lngMax Then
strTemp = Format(lngTemp, strFormat)
'递归调用GetString
GetString = strBaseValue & "," & GetString(Format(strTemp, strFormat), lngMax)
Else
GetString = strBaseValue
End If
Screen.MousePointer = vbDefault
Exit Function
MsgErr:
'错误处理
Screen.MousePointer = vbDefault
If Err.Number <> 0 Then MsgBox Err.Number & vbTab & Err.Description, vbInformation, ""
GetString = ""
End Function
Top




