close
題目連結: https://onlinejudge.org/external/119/11933.pdf
題目大意: 給一個數字,從最低位開始,將奇數位的1給a,偶數位的1給b。
思路: O(1),照題目要求進行。利用位元運算。n & (1<<i) 表示 n 與 2的i次方 做 &運算
代碼:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin >> n, n){
int a = 0, b = 0;
bool dir = 0;
for(int i = 0; i <= 30; ++i){
if(n & (1<<i)){
if(!dir) a|= (1<<i);
else b|= (1<<i);
dir ^= 1;
}
}
cout << a << " " << b << endl;
}
}
文章標籤
全站熱搜
留言列表