[問題] 0與1的排列組合

看板C_and_CPP作者 (薯)時間14年前 (2009/09/26 03:48), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/5 (看更多)
好煩呀 這個是一個作業 題目就是:輸入一個數字n(正整數)  請排列出n個位元的0101的排列組合  不可使用 0,1,2,3,4,5,6.....的方式累加轉二進制補零的方式  也不可以使用任何除2進位之類有的沒有的方法  只能:0個1的排列、1個1的排列、2個1的排列.....n個1的排列 我的方法是:若n=6 0個1: 000000 1個1: 100000 010000 001000 000100 000010 000001 2個1: 110000 101000 100100 100010 100001 最右邊的1已經到底了 011000 右邊數過來倒數第二個1往右shift一位  最右邊的1接在第二個1的下一個位元,繼續跑    010100 010010 010001 001100 001010 001001 000110 000101 000011 3個1: 111000 110100 110010 110001 101100 101010 101001 100110 100101 100011 011100 011010 011001 010110 010101 010011 001110 001101 001011 000111 以下同上 這是我的想法 印象中老師說可以用遞迴寫..... 我已經想好終止條件了:當1的長度只有一個的時候邊印邊往右shift 可是我不知道要怎麼樣往終止條件靠近..... 有想法但是程式碼就是想不出來.... 不知道有沒有鄉民可以幫我一把..... 希望我的說明大家可以看的董 -- 肝不好 肝若好 人生是黑白的 考卷是空白的 、 ﹐ ● ●b ▎ ●> ● ▌ ﹍﹍ 囧> 幹... ▲ ■┘ ▎ ■ ▋ ︶■ 〈﹀ ∥ ▁▁∥ ▎ ﹀〉▊ 〈\ ψcockroach727 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.232.63.167 ※ 編輯: liu2007 來自: 118.232.63.167 (09/26 03:48)

09/26 03:53, , 1F
我的想法是當 n=1 只有兩種情0和1 n=2 就是遞迴去呼叫
09/26 03:53, 1F

09/26 03:54, , 2F
n=1 的情形加以組合
09/26 03:54, 2F

09/26 14:53, , 3F
當成是binary tree 從root到各leaf 的path
09/26 14:53, 3F

09/26 23:18, , 4F
不能累加 那我累減可不可以
09/26 23:18, 4F
文章代碼(AID): #1AlHwRqU (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AlHwRqU (C_and_CPP)