作者liu2007 (薯)
看板C_and_CPP
標題[問題] 0與1的排列組合
時間Sat Sep 26 03:48:40 2009
好煩呀
這個是一個作業
題目就是:輸入一個數字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 囧 ▎ ●> ● ◤
▌ ﹍﹍ 0 ▊囧>
幹...
▲ ■┘ ■ ▎ ■ █◤ ▌ ㄏ▋ ︶■
〈﹀ ∥ ▁▁∥ ▎ ﹀〉◤
▋ ▊ 〈\
ψcockroach727
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.63.167
※ 編輯: liu2007 來自: 118.232.63.167 (09/26 03:48)
→ tonyhcc:我的想法是當 n=1 只有兩種情0和1 n=2 就是遞迴去呼叫 09/26 03:53
→ tonyhcc:n=1 的情形加以組合 09/26 03:54
推 dendrobium:當成是binary tree 從root到各leaf 的path 09/26 14:53
→ jaw109:不能累加 那我累減可不可以 09/26 23:18