大家好,欢迎来到IT知识分享网。
private
string
combine(
int
[] a,
int
n,
int
m,
int
[] b,
int
M)
…
{
string all = “”;
for (int i = n; i >= m; i—) // 注意这里的循环范围
…{
b[m – 1] = i – 1;
if (m > 1)
all+=combine(a, i – 1, m – 1, b, M);
else // m == 1, 输出一个组合
…{
for (int j = M – 1; j >= 0; j—)
all += a[b[j]].ToString() + “ “;
all += “ “;
}
}
return all;
}
private
void
show(
int
n)
…
{
int[] a = new int[n];
string showall = “”;
for (int i = 0; i < n; i++)
…{
a[i]=i;
}
for (int i = 0; i < n; i++)
…{
int[] b=new int[i+1];
showall += combine(a, n, i+1, b, i+1);
}
this.TextBox1.Text = showall;
}
用递归实现所有组合的算法!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24995.html