基本思想:给定一个数组,找到该数组的所有排列。然后,采取每个阵列,并把它们放在一起。例如,数组{6,5,3,4,1,2}为您提供653412.排列工作,但我无法得到整数。对数组进行排列,然后将它们变成一个int
int main()
{
int myints[] = {2,3,4,5,6,7,8,9};
int k;
int dmartin=0;
int powof10=1;
std::cout << "The 8! possible permutations with 8 elements:\n";
do {
for(k=0; k<8; k++){
std::cout << myints[k] << ' ';
dmartin=myints[8-k-1]*powof10+dmartin;
powof10=powof10*10;
}
cout << "\n" << dmartin << "\n";
} while (std::next_permutation(myints,myints+8));
dmartin=0;
return 0;
}
我也有一些代码,当你只有一个数组,但在这种情况下,有成千上万。我虽然需要在每个循环结束时重置dmartin = 0,以便它不会继续添加到以前的答案,但是当我尝试为每个答案得到“0”时。不尝试重置,我得到的答案似乎是随机的(并且是负面的)。
这是谁d.martin家伙,顺便说一下? –