首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.NET中数组的组合

.NET中数组的组合
EN

Stack Overflow用户
提问于 2013-08-06 07:09:00
回答 1查看 69关注 0票数 0

我不确定这个问题是用于数学部分还是这个部分,但我需要一个编程解决方案(在.NET中),因此我在这里提出了这个问题。

我有一个可变长度的数组,输出结果如下面的示例所示。

对于int[] arr = {1,2},如下所示:

1,2,1,2

对于int[] arr = {1,2,3},如下所示:

1,2,2,3,3,1,1,2,3,1,2,3

对于int[] arr = {1,2,3,4},将类似于

1,2,2,3,3,4,4,4,1,1,2,3,4,2,2,2,3,4,4,4,4,1,2,1,2,3,4

int[] arr = {1,2,3,4,5}

我想你现在应该能看到模式了

任何指针或提示如何以编程方式解决这一问题,或者如果有相关的数学公式,任何人都可以想到吗?

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-06 07:57:40

我认为它作为一个程序是非常无用的,作为一个练习,如果你不自己做,那么它是无用的。但我给了每个人他们要求的..。

代码语言:javascript
运行
复制
int[] arr = new int[] { 1, 2, 3 };

// How much elements in each permutation
for (int i = 1; i <= arr.Length; i++)
{
    // Starting point of the permutation
    for (int j = 0; j < arr.Length; j++)
    {
        Console.Write("[");

        // Single element of the permutation
        for (int k = 0; k < i; k++)
        {
            if (k != 0)
            {
                Console.Write(", ");
            }

            Console.Write("{0}", arr[(j + k) % arr.Length]);
        }

        Console.WriteLine("]");

        // Single cycle for last permutation of length arr.Length
        if (i == arr.Length)
        {
            break;
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18073770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档