我想写一个程序,可以给我所有4个字母的单词(从字典或字典外)。我用C ++编写代码。到目前为止,我已经无处可去了。 我只是C ++的初学者,我可以应用逻辑,但我没有介绍C ++的高级功能。如果该程序需要很长时间才能结束执行并不重要,我只想要解决方案。
例如:
abcd
king
ngik
cbda
play
lpay
payl
等等(我希望这个程序输出的数百万输出中只有几个)。
注意:生成的单词无需有意义,我不想丢弃任何组合,我想要一切。
答案 0 :(得分:3)
我建议从0到26 ^ 4 - 1循环说i
,每次输出' A' + i /(26 * 26 * 26),' A' + i /(26 * 26)%26,' A' + i / 26%26,' A' + i%26,然后换行。
答案 1 :(得分:2)
制作一个包含所有可能字母的数组(如果需要,可添加数字和符号)。
然后使用四个嵌套的for
循环,循环一个从0到数组长度的数字。
让我们说循环数变量是a,b,c,d。
在内部循环(最后一个)中,您可以将其输出为数组[a] +数组[b] +数组[c] +数组[d]
这提供了所有可能的组合,您可以添加数字和符号。
答案 2 :(得分:1)
使用递归
探索DFS 26-ary树,并在每次进入相应分支时输出该字母。 depth = 4。
P.S。递归算法吃堆栈内存就像地狱一样...所以要确保你的机器让程序有足够的堆栈内存。你不想在只有3级调用堆栈的pic micro上运行它: - )