C# 6个数字得出全部排列组合 写入listbox内
比如这六个数字123456分别在6个label里lbl1~6如何编程才能让他们形成所有排列组合然后依次写入listbox内呢我是新手这是我们假期的作业嗯是Windowsf...
比如这六个数字 1 2 3 4 5 6分别在6个label里 lbl1~6
如何编程才能让他们形成所有排列组合然后依次写入listbox内呢
我是新手 这是我们假期的作业
嗯 是Windows forms application
排列组合不带重复的 展开
如何编程才能让他们形成所有排列组合然后依次写入listbox内呢
我是新手 这是我们假期的作业
嗯 是Windows forms application
排列组合不带重复的 展开
展开全部
一个组合的数字可以重复的话就简单 一个数组循环6次 不可以重复的话就6个数组 每次挖掉用过的 也是6次循环
追问
请具体一点 我是新手啊
追答
int[] sum=new int[6]{7,4,1,6,5,9};
string[] count = new string[666665];
int num = 0;
for (int a = 0; a < sum.Length; a++)
{for (int b = 0; b < sum.Length; b++)
{for (int c = 0; c < sum.Length; c++)
{for (int d = 0; d < sum.Length; d++)
{for (int f = 0; f < sum.Length; f++)
{for (int p = 0; p < sum.Length; p++)
{count[num] = sum[a].ToString() + sum[b].ToString() + sum[c].ToString() + sum[d].ToString() + sum[f].ToString() + sum[p].ToString() + "------------" + num.ToString() ;
num++;
}
}
}
}
}
}
string[] result = count.Distinct().ToArray();
list1.DataSource = result
不到2秒就显示了
展开全部
没明白你的要求? 你是要1-6的全部组合写到listbox?
追问
1~6只是例子 我们老师的要求是任意的6位数分别生成在那6个label都可以进行所有的排列组合 不带重复的
追答
int[] ss = new int[] { 4, 1, 8, 6, 7, 0 };
int count = 0;
for (int i = 0; i < ss.Length; i++)
{
for (int j = 0; j < ss.Length; j++)
{
if (j == i) continue;
for (int k = 0; k < ss.Length; k++)
{
if (k == j || k == i) continue;
for (int l = 0; l < ss.Length; l++)
{
if (l == i || l == j || l == k) continue;
for (int m = 0; m < ss.Length; m++)
{
if (m == i || m == j || m == k || m == l) continue;
for (int n = 0; n < ss.Length; n++)
{
if (n == i || n == j || n == k || n == l || n == m) continue;
textBox1.AppendText("" + ss[i] + ss[j] + ss[k] + ss[l] + ss[m] + ss[n]);
textBox1.AppendText("\r\n");
count++;
}
}
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询