【发布时间】:2018-11-12 21:19:52
【问题描述】:
我有这个重复排列的代码。任何人都可以帮助将其修改为不重复。我想不通。
int array1[] = {1, 2, 3}; //array can be {1,1,2,3} for example also
int array2[3];
void permWithRep (int array1[], int array2[], int last, int index){
int i, len = last+1;
enter code here
for ( i=0; i<len; i++ )
{
array2[index] = array1[i] ;
if (index == last){
for(int i = 0; i < 3; i++) {
printf("%d ", array2[i]);
}
printf("\n");
}
else // Recur for higher indexes
permWithRep (array1, array2, last, index+1);
}
}
int main()
{
int len = sizeof(array1)/sizeof(int);
permWithRep (array1, array2, len-1, 0);
return 0;
}
【问题讨论】:
-
你能定义你所说的“重复”吗?这听起来像是一个奇怪的问题,但我没有看到任何重复的代码。也许您正在谈论循环。是否要删除所有循环?这是家庭作业吗?
-
对于任何不清楚问题术语的人 - en.wikipedia.org/wiki/Permutation#Permutations_with_repetition
-
你试过什么?你对这个问题有什么不明白的地方?
标签: c permutation repeat