Re: [問題] 有關重覆排列的問題

看板C_and_CPP (C/C++)作者 (喲)時間16年前 (2010/02/06 00:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《fenixII (喔)》之銘言: : 最近遇到要寫一個產生所可能排列的程式 : 假設有3個元素 0 ~ 2 : 當我輸入2的時候 : 希望能產生如下的結果 : 0 0 : 0 1 : 0 2 : 1 0 : 1 1 #include <string> #include <cstring> using namespace std; string permu(int n); string permu(int m, int n); int main(int argc, char *argv[]) { int n = atoi(argv[1]); cout << permu(n) << endl; system("PAUSE"); return 0; } string permu(int n) { return permu(n, n); } string permu(int m, int n) { if (n <= 0) return "$"; //Base case //Following: Recursive case int i; string r; for(i=0; i<=m; i++) { string sub1 = permu(m, n-1); char* sub = strtok((char*)(sub1.c_str()), " "); while (sub != NULL) { r += (char(i+'0') + string(sub) + ' '); sub = strtok(NULL, " "); } } return r; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.224.30
文章代碼(AID): #1BR4THdp (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BR4THdp (C_and_CPP)