You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将C#中的多层嵌套循环实现为递归函数?

C# 用递归实现多层嵌套循环的组合生成

原代码的作用是生成6个0-3的数字的所有排列组合,每个组合用逗号分隔后存入列表。用递归实现的话,核心是把"层数"作为递归的终止条件,每层遍历0到3的数字,逐步构建组合字符串。

递归实现代码

List<string> post = new List<string>();
// 调用递归:总层数6,每层最大值4(对应0-3的范围)
GenerateCombinations(0, "", post, 4, 6);

// 递归方法
void GenerateCombinations(int currentLevel, string currentCombination, List<string> result, int maxPerLevel, int totalLevels)
{
    // 终止条件:当前层级达到总层数,保存最终组合
    if (currentLevel == totalLevels)
    {
        result.Add(currentCombination);
        return;
    }

    // 遍历当前层的所有可能数字
    for (int i = 0; i < maxPerLevel; i++)
    {
        string newCombination = currentCombination;
        // 非第一层时添加逗号分隔符
        if (currentLevel > 0)
        {
            newCombination += ",";
        }
        newCombination += i.ToString();
        
        // 递归进入下一层,继续构建组合
        GenerateCombinations(currentLevel + 1, newCombination, result, maxPerLevel, totalLevels);
    }
}

代码说明

  • currentLevel:当前处理的层级(从0开始计数),用来判断是否到达递归终点
  • currentCombination:当前已构建完成的部分组合字符串
  • maxPerLevel:每层数字的上限(这里传4,对应0-3的取值范围)
  • totalLevels:总层数(对应原代码的6层嵌套循环)

这种实现的优势在于灵活性:如果需要调整层数或者每层的数字范围,只需要修改调用递归时的totalLevels和maxPerLevel参数,不用手动修改多层嵌套的循环结构。

内容的提问来源于stack exchange,提问作者Bale Garez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:39:26