看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Visual Studio 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 字串每個位置可以放一個字母a或b或c或d, 印出所有長度小於6的字串 有爬版過,也知道如果是四個字串的排列要怎麼打 但是如果是四個字母可重複使用而且字串長度可以是1,2,3,4,5的話 想很久還是不知道從哪裡下手 請各位有經驗的大大幫我解惑 感激不盡 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.140.77 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1480340779.A.364.html
james732: 遞迴? 11/28 22:00
aa4997: 沒有要求一定要用哪種方式~ 11/28 22:16
MOONY135: 你的描述有點問題 可以給幾個INPUT跟OUTPUT嗎\ 11/28 22:21
jobsdone: 排列組合嗎 11/28 22:22
aa4997: 對是類似排列組合的題目,希望印出a/b/c/d/aa/ab/ac/ad/ba/ 11/28 23:06
aa4997: bb....一直到字串長度是5 11/28 23:06
garyl62327: 因該是指 以abcd四個字母 窮舉出指定長度的字串 11/28 23:08
garyl62327: 因為要指定長度 因該只能遞迴解了@@? 11/28 23:10
Schottky: 「應」該 11/28 23:22
littleshan: 就五進位法啊,1234改成abcd,然後遇到有0的就跳過去 11/28 23:23
garyl62327: 確實是「因」該壓! 因為不確定orz 11/28 23:28
pttworld: 產生所有長度的所有排列。產生所有排列再套一層。 11/28 23:37
Caesar08: 「應」該 11/29 00:28
garyl62327: 原來...沒有因該這個字...我錯了orz 11/29 02:53
asd456fgh778: 樓上的國文老師在哭泣 11/29 09:47
wvwvwvwvwv: 我一直以為因該=因為不確定 是反串 沒想到真有人認為 11/29 10:27
garyl62327: 我對不起我的國文老師orz 11/29 12:02
lucky1lk: 不行 罰你 抄20次 "應該" 11/29 12:43
Schottky: 如果不懂遞迴,我覺得你也可以用迴圈思考一下該怎麼做 11/29 15:20
Schottky: 不必一直想著排列組合,用直覺去寫寫看 11/29 15:22
CoNsTaR: 你這個不就是4進位而已嗎?0123用abcd代表,一開始是0, 11/29 16:07
CoNsTaR: 然後一直加1就可以了 11/29 16:07
CoNsTaR: 原來樓上有人說過了 orz... 11/29 16:08
aa4997: 回C大跟l大,請問要怎麼把十進位改成四進位呢?爬文都只 11/29 18:30
aa4997: 有看到轉二進位跟十六進位。謝謝~ 11/29 18:30
chuegou: 就除四 結果進位 餘數為當前位 11/29 18:58
MOONY135: 他應該是說沒看到函數可以直接轉吧 11/29 19:48
CoNsTaR: 你有做過大數加法嗎 就一樣的做法 11/29 21:12
bigpigbigpig: 用 Cartesian Product:https://ideone.com/4LaslA 11/30 07:26
CoNsTaR: 其實原 Po 本來的問題就是要如何用 C 語言來做 {a,b,c,d} 12/01 17:35
CoNsTaR: 的笛卡爾積了 不是嗎 :p 12/01 17:35
CoNsTaR: 只是他沒有把笛卡爾積這幾個字寫出來而已 12/01 17:36