出一个思考题

lou_df 2001-08-29 05:03:27
如何将一个字符串中固定数量的字符做一个全排列,写出程序。举一个例子:abcd 的2个字符的排列是 ab ac ad ba bc bd ca cb cd da db dc 。
...全文
217 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
lou_df 2001-09-03
  • 打赏
  • 举报
回复
感谢pctommy(pctommy)。分给你了。思考题是帮助大家开拓思路,活跃气氛。这次的题目比较基础一些,相信很多人都感兴趣。
pctommy 2001-09-03
  • 打赏
  • 举报
回复
好!大家都来研究一些关于算法的东东!
pctommy 2001-09-02
  • 打赏
  • 举报
回复
up
pctommy 2001-09-02
  • 打赏
  • 举报
回复
不了解什么?如果是程序方面的我可以尽力解释
小乖 2001-09-01
  • 打赏
  • 举报
回复
不了解什么意思。
pctommy 2001-09-01
  • 打赏
  • 举报
回复
不过,给谁分倒不重要,编程是为了快乐,所以才编程
pctommy 2001-09-01
  • 打赏
  • 举报
回复
还有,我写程序的时候,string变量我一直都用st前缀,这也算独一无二了
homqom(操作者)我根本就不认识!

我的代码可是写了整整一个下午了啊…………!!



pctommy 2001-09-01
  • 打赏
  • 举报
回复
是我先答的,你不信我就给你vbp文件看。
pctommy 2001-08-31
  • 打赏
  • 举报
回复
up
pctommy 2001-08-31
  • 打赏
  • 举报
回复
如果仅仅完成叙述的功能,回朔就是这么简单
pctommy 2001-08-31
  • 打赏
  • 举报
回复
up
homqom 2001-08-31
  • 打赏
  • 举报
回复
Dim nRange As Integer
Dim nDeep As Integer
Dim stString As String
Dim st1 As String
Dim st2 As String



Private Sub Command1_Click()
nRange = 3
stString = "abcd"

st2 = ""
Start (st2)


End Sub

Sub Start(stPrv As String)
Dim i
Dim stPrivate As String

nDeep = nDeep + 1

If nDeep = nRange + 1 Then nDeep = nDeep - 1: GoTo SkipThisLayer
For i = 1 To Len(stString)
stPrivate = Mid(stString, i, 1)
If InStr(stPrv, stPrivate) = 0 Then
st1 = stPrv + stPrivate
If nDeep = nRange Then MsgBox st1
Start (st1)

End If
Next i
nDeep = nDeep - 1
SkipThisLayer:
End Sub
pctommy 2001-08-31
  • 打赏
  • 举报
回复
up
lou_df 2001-08-31
  • 打赏
  • 举报
回复
pctommy(pctommy)和homqom(操作者)答案一样,如果是同一人,我就给一个人分数。该不会抄袭吧?
ozw 2001-08-30
  • 打赏
  • 举报
回复
是不是想做黑客程序啊!?
lou_df 2001-08-30
  • 打赏
  • 举报
回复
无法得出正确结果。
lou_df 2001-08-30
  • 打赏
  • 举报
回复
我测试一下。
pctommy 2001-08-30
  • 打赏
  • 举报
回复
《数据结构》是什么书?
ColderRain 2001-08-30
  • 打赏
  • 举报
回复
《数据结构》里有这样的例题!好象不是这么简单哟!
pctommy 2001-08-30
  • 打赏
  • 举报
回复
非常抱歉,我肯定有问题:

这回保证没有错:
Dim nRange As Integer
Dim nDeep As Integer
Dim stString As String
Dim st1 As String
Dim st2 As String



Private Sub Command1_Click()
nRange = 3
stString = "abcd"

st2 = ""
Start (st2)


End Sub

Sub Start(stPrv As String)
Dim i
Dim stPrivate As String

nDeep = nDeep + 1

If nDeep = nRange + 1 Then nDeep = nDeep - 1: GoTo SkipThisLayer
For i = 1 To Len(stString)
stPrivate = Mid(stString, i, 1)
If InStr(stPrv, stPrivate) = 0 Then
st1 = stPrv + stPrivate
If nDeep = nRange Then MsgBox st1
Start (st1)

End If
Next i
nDeep = nDeep - 1
SkipThisLayer:
End Sub
加载更多回复(5)

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧