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;
}
用递归实现所有组合的算法!
C#组合的递归算法
原文作者:递归算法
原文地址: https://blog.csdn.net/wzq6511/article/details/2346406
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/wzq6511/article/details/2346406
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。