我們定義將二進制數 n 拆分為兩個數 a(n)、b(n) 的操作如下。
令 i1 < i2 < ...... < ik 是 n 中為 1 的位置。
則 a(n) 為 n 中的 1 的奇數位置組成 i1, i3, i5, ......
且 b(n) 為 n 中的 1 的偶數位置組成 i2, i4, i6, ......
例如:
如果 n 在二進制中是 110110101 => [1, 1, 0, 1, 1, 0, 1, 0, 1] => [i6, i5, 0, i4, i3, 0, i2, 0, i1]
那麼同樣在二進制中,我們有 a = 010010001 和 b = 100100100。
以下為題目原文:
每行有一個十進位數字 n (1 ≤ n ≤ 2^31-1)
如果輸入為 0 則結束
輸出一行包含兩個十進位整數 a(n)、b(n)並以空白做分隔
6 7 13 0
2 4 5 2 9 4
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
41905 | s10900156@nh ... (ShanC) | j032 | 31 | 2024-09-08 22:07 |