作者mikemagic88 (Mikemagic88)
看板C_and_CPP
標題[問題] 簡單的排列
時間Tue Sep 20 00:27:44 2016
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
應該沒有吧
問題(Question):
使用者輸入數字後, 輸出所有可能之排列.
餵入的資料(Input):
假設是3好了
預期的正確結果(Expected Output):
[1] 1, 2, 3
[2] 1, 3, 2
[3] 2, 1, 3
[4] 2, 3, 1
[5] 3, 1, 2
[6] 3, 2, 1
錯誤結果(Wrong Output):
無
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/7iBiyM
補充說明(Supplement):
分為 "不使用遞迴" 和 "使用遞迴" 兩種狀況
我先不用遞迴寫
--
目前寫了一個陣列讓使用者輸入數字後才決定長度
也寫了temp2來得知說每個數字開頭有幾種可能
例: 使用者輸入3 則總共有3*2*1種排列
而1開頭2開頭3開頭分別有6/3=2種可能
有Google查過排列組合 但是真的看不太懂
我的想法只能知道每個數字開頭的有幾種
後面怎麼排我真的想不到
麻煩各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.178.165
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1474302467.A.380.html
1F:推 firejox: 可以去研究STL的next_permutation 怎麼寫的 09/20 02:46
2F:噓 Sidney0503: 作業自己做 09/20 08:12
3F:推 springman: 用堆疊吧! 09/20 11:24
4F:→ HolyBugTw: 我有點覺得這一行可能不適合你... 09/20 13:58
5F:推 springman: 也不一定啦,看已經學程式設計多久了,記得我大一時對 09/20 16:12
6F:→ springman: 類似的題目也沒有頭緒,對遞迴無法掌握,大約到大三 09/20 16:13
7F:→ springman: 才慢慢能夠掌握。 09/20 16:14
8F:噓 Sidney0503: 不會就用暴力解 ok? 這不是程式能力的問題 09/20 20:06
9F:→ Sidney0503: 而是基本數學思維不夠 自行搜Computational Thinking 09/20 20:08
10F:→ ronin728: 不過國內基礎程式設計的書與課程都是教語法 09/20 22:42
11F:→ ronin728: 很少有演算法方面具啟蒙性的課綱,通常要靠學生自己 09/20 22:43
12F:推 noodleT: 先別管這題了,請先思考一下變數「命名」這幾個字 09/21 00:05