基本思想:給定一個數組,找到該數組的所有排列。然後,採取每個陣列,並把它們放在一起。例如,數組{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傢伙,順便說一下? –