Test Message

d471: 0 與 1 的遊戲

內容

有 1 個 bit,可以表示 0 與 1。

有 2 個 bit,可以表示 00,01,10,11。

有 n 個 bit,請產生所有 n 個 bit 所能表示的 2 進位數字。


輸入

每行一個數字 n ( 0 < n < 15 )

代表 n 個 bit

1
2

輸出

請參考範例輸出

0
1
00
01
10
11


解題思路

用 DFS 窮舉目標位元數的所有 2 進制可能性即可。


完整程式碼

AC (3ms, 76KB)
#include <stdio.h>

int n;
char ans[16];

void dfs(int lv)
{
if (lv == n)
{
puts(ans);
return;
}
ans[lv] = '0';
dfs(lv + 1);
ans[lv] = '1';
dfs(lv + 1);
}

int main()
{
while (scanf(" %d", &n) == 1)
{
ans[n] = 0;
dfs(0);
}
return 0;
}