這題的話他是要輸出長度為 的所有位元的排列,想不到的話可以觀察一下面的這張表
Decimal | Binary |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
我們可以從表中發現,如果我們要算長度為 N 的所有排列的話,我們只需要將 1 右移 N 位,這樣就可以得到我們要的答案了
值得注意的有兩點:
可以講這題看成每一個位元有 2 種可能性,所以要輸出的答案就是
然後這邊也跟位元運算一樣,要慢慢乘上去並同時取模,否則答案會過大