C# 如何实现循环嵌套次数不确定的问题

comeon2518 2014-08-05 04:11:54
我的问题描述如下
假设有n个数,每一个数取值范围已知(连续整数取值),列出这n个数的所有排列情况,例如,有a,b,c三个数,a取值为0~2,b取值为0~1,c取值为0~3,(abc均取整数),请列出abc的所有组合情况(数字顺序就是abc)。循环嵌套只能解决n给定且较小的问题,如果n不确定并较大时就不知道怎么弄了,求高手解答
...全文
338 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
comeon2518 2014-08-05
  • 打赏
  • 举报
回复
引用 6 楼 comeon2518 的回复:
[quote=引用 4 楼 gomoku 的回复:]
void P(List<int[]> list, Stack<int> stack)
{
    if (stack.Count == list.Count)
    {
        // 打印结果
        Console.WriteLine(string.Join(",", stack.Select(x => x.ToString()).ToArray()));
    }
    else
    {
        int[] ints = list[stack.Count];
        foreach (int i in ints)
        {
            stack.Push(i);
            P(list, stack);
            stack.Pop();
        }
    }
}
请问怎么用这个代码?[/quote] 唔,搞定了,顶礼膜拜
comeon2518 2014-08-05
  • 打赏
  • 举报
回复
引用 4 楼 gomoku 的回复:
void P(List<int[]> list, Stack<int> stack)
{
    if (stack.Count == list.Count)
    {
        // 打印结果
        Console.WriteLine(string.Join(",", stack.Select(x => x.ToString()).ToArray()));
    }
    else
    {
        int[] ints = list[stack.Count];
        foreach (int i in ints)
        {
            stack.Push(i);
            P(list, stack);
            stack.Pop();
        }
    }
}
请问怎么用这个代码?
comeon2518 2014-08-05
  • 打赏
  • 举报
回复
不是随机范围取值,取值范围我给定了,举一个简单例子,a取值0~2,b取值0~1,则ab的所有组合应该是 00,01,10,11,20,21
gomoku 2014-08-05
  • 打赏
  • 举报
回复
void P(List<int[]> list, Stack<int> stack)
{
    if (stack.Count == list.Count)
    {
        // 打印结果
        Console.WriteLine(string.Join(",", stack.Select(x => x.ToString()).ToArray()));
    }
    else
    {
        int[] ints = list[stack.Count];
        foreach (int i in ints)
        {
            stack.Push(i);
            P(list, stack);
            stack.Pop();
        }
    }
}
万玩完顽完 2014-08-05
  • 打赏
  • 举报
回复
你的问题看的不是很明白,abc是随机范围取值?
comeon2518 2014-08-05
  • 打赏
  • 举报
回复
想了半天也没琢磨出来怎么写,大虾给点提示
gomoku 2014-08-05
  • 打赏
  • 举报
回复
你可以用第归。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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