十四 排列2

2021-08-01 00:11:30 字數 1123 閱讀 4082

problem description

ray又對數字的列產生了興趣:

現有四張卡片,用這四張卡片能排列出很多不同的4位數,要求按從小到大的順序輸出這些4位數。

input

每組資料佔一行,代表四張卡片上的數字(0<=數字<=9),如果四張卡片都是0,則輸入結束。

output

對每組卡片按從小到大的順序輸出所有能由這四張卡片組成的4位數,千位數字相同的在同一行,同一行中每個四位數間用空格分隔。

每組輸出資料間空一行,最後一組資料後面沒有空行。

sample input

1 2 3 4

1 1 2 3

0 1 2 3

0 0 0 0

sample output

1234 1243 1324 1342 1423 1432

2134 2143 2314 2341 2413 2431

3124 3142 3214 3241 3412 3421

4123 4132 4213 4231 4312 4321

1123 1132 1213 1231 1312 1321

2113 2131 2311

3112 3121 3211

1023 1032 1203 1230 1302 1320

2013 2031 2103 2130 2301 2310

3012 3021 3102 3120 3201 3210

學習了乙個函式permutation 全排序 和嚴格的格式輸出;

next_permutation 只能對不重複的元素進行排序,如果對重複的元素進行全排序的話,需要新增限制條件;

比如abab 就列印不出aabb 來;

#include #include using namespace std;

int main()

else

if(a[0] == t)

cout<<" "

coutt=a[0];

}while(next_permutation(a,a+4));

cout<;

}return0;

}

十四周任務2

includeusing namespace std class student student next int num double score class mylist mylist int n,double s 以student n,s 作為單結點的鍊錶 int display 輸出鍊錶,返...

杭電acm 排列2

這題的核心演算法就是排列問題 就目前常用的排列演算法有兩種 一種是按字典列出排序,c stl所使用的方法,能夠支援重複元素的全排列。另外一種是使用遞迴生成排序。先說容易理解的一種方法,使用遞迴生成排序 例如1,2,3,4,這個序列。最開始,也就是遞迴最外層我們可以將其分成 1 2,3,4,2 1,3...

十四周實驗報告2

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 建立專門的陣列類處理有關陣列的操作 作 者 肖騰威 完成日期 2012 年 5 月 21日 版 本 號 201158504435 對任務及求解方法的描述部分 includeusing namespace std class student stud...