如何在C ++中生成所有可能的4个字母单词

时间:2014-04-10 08:31:46

标签: c++ algorithm

我想写一个程序,可以给我所有4个字母的单词(从字典或字典外)。我用C ++编写代码。到目前为止,我已经无处可去了。 我只是C ++的初学者,我可以应用逻辑,但我没有介绍C ++的高级功能。如果该程序需要很长时间才能结束执行并不重要,我只想要解决方案。

例如:

abcd
king
ngik
cbda
play
lpay
payl

等等(我希望这个程序输出的数百万输出中只有几个)。

注意:生成的单词无需有意义,我不想丢弃任何组合,我想要一切。

3 个答案:

答案 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上运行它: - )