privatestring 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; } privatevoid show(int n) ...{ int[] a =newint[n]; string showall =""; for (int i =0; i < n; i++) ...{ a[i]=i; } for (int i =0; i < n; i++) ...{ int[] b=newint[i+1]; showall += combine(a, n, i+1, b, i+1); } this.TextBox1.Text = showall; }