c - 在 C 中生成 n 个字母组合的总数

标签 c algorithm logic

我应该编写一个逻辑来生成 n 个字母的单词的组合。

例如,如果提供数字 2,我需要从 a-z 生成所有两个字母的单词,即:

    aa-ba-ca.....za
    ab-bb-cb.....zb
    .
    .
    .
    .
    az-bz........zz

我知道嵌套循环不足以解决这个问题,因为嵌套循环的数量会随着单词中字母的数量而变化。这使我转向递归,但我想不出其中的逻辑。

最佳答案

递归是这里的关键。这是一个用 Java 编写的示例:

public static void printCombos(int totalWords, String s) {
    if(totalWords-- <= 0) {
        System.out.print(s + " ");
        return;
    }
    for(char i = 'a'; i <= 'z'; i++)
        printCombos(totalWords, s + Character.toString(i));
    System.out.println();
}

调用它:

printCombos(2, "");

关于c - 在 C 中生成 n 个字母组合的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55578511/

相关文章:

c++ - 尝试计算算法的运行时间

arrays - 数组序列算法效率

javascript - PHP:如何根据数百个用户选项提供定制内容?

c++ - 在崩溃时释放分配的指针的正确方法

c - C 中传递指针地址与指针到指针

c - 使用 md5sum 更简单的不变量

c - MPI - 使用 MPI_Probe() 时发送我自己的结构

perl - 一种估计程序运行时间的算法

c - 简单的字符串递归

sql - 复杂的sql日期逻辑: How can I schedule my reports?