如:
组1{1,2}
组2{3,4,5}
组3{6,7}
.
.
.
.组N{N!}想组成N位新的数用循环可以完成
{1,3,6}{1,3,7}{1,4,6}...{2,5,6}{2,5,7}
想用递归来做,请高手指点!

解决方案 »

  1.   

    先取每个组的第一个元素生成新组,然后利用递归,对已生成的新组逐位替换。
    1、先取原组中的第一个数,得到新组
    2、再对每个新组的第k位由原第k组的其他数据逐一替换。由后向前进行,直到k<0
    如你给出的例子:
    1、得到{1,3,6}
    2、得到{1,3,7}
    3、得到{1,4,6},{1,4,7},{1,5,6},{1,5,7}
    4、得到{2,3,6},{2,3,7},{2,4,6},{2,4,7},{2,5,6},{2,5,7}每个组用串表示:如a(0)="1,2",a(1)="3,4,5",a(2)="6,7"。递归函数无须参数,定义二个全局变量即可:n(记录已产生的组数)、m(当前替换位,也是用来作替换的组号)。