CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

用递归如何写下面程序

楼主pguard(pguard)2002-04-15 12:16:58 在 VB / 基础类 提问

要求生成的结果例如下面形式(假设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

相关问题

  • 递归程序的非递归化
  • help!一个递归程序
  • 高手帮我看看下面的程序(递归)出来啥问题
  • 怎样理解递归程序最好
  • 请教一个递归小程序
  • 请教递归程序问题
  • 非递归的汉诺塔程序
  • 这个递归程序看不懂啊
  • 请问:一道递归调用程序
  • 在java里,递归的程序怎么写??麻烦随便写个例子出来。谢谢!

关键词

  • bint
  • 生成
  • msgbox
  • err
  • byval
  • begin
  • as integer

得分解答快速导航

  • 帖主:pguard
  • hlsfe2000hjq

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo