查找所有带有 4 个数字的组合,c#

本文关键字:组合 数字 查找 | 更新日期: 2023-09-27 18:30:38

我有 4 个数字,需要找到所有带有 2 位数字的组合。

我尝试使用 2 个 for 循环来做到这一点,不幸的是成功了。.

这是我的代码,在代码"小时间"中是一个由 4 个数字组成的数组,每个数字只有 1 位数字

        int[] smallTime = new int[4];
        int i = 0;
        smallTime[0]=2;
        smallTime[1]=9;
        smallTime[2]=3;
        smallTime[3]=2;
        String st = "";
        for (; i < smallTime.Length; i++)
        {
            for (int j = 1; j < smallTime.Length; j++)
            {
                if (j == i)
                    j++;
                if (j >= smallTime.Length)
                    break;
                st += smallTime[i].ToString() + smallTime[j].ToString() + ",";
            }
        }

使用此数组,结果需要为:"29,23,22,93,92,32"

查找所有带有 4 个数字的组合,c#

由于您从1开始j,因此您跳过了一些组合,例如i = 1,j = 0和i = 2,j = 0等。相反,如果ij相等,请尝试跳过当前步骤。

for (int i =0; i < smallTime.Length; i++)
{
    for (int j = 0; j < smallTime.Length; j++)
    {
        if (j == i)
            continue;
        st += smallTime[i].ToString() + smallTime[j].ToString() + ",";
     }
}

编辑:根据您的更新j应该从i+1开始

for (int i = 0; i < smallTime.Length; i++)
{
    for (int j = i + 1; j < smallTime.Length; j++)
    {
        st += smallTime[i].ToString() + smallTime[j].ToString() + ",";
    }
}