給出兩個不大於65535的非負整數,判斷其中乙個的16位二進位制表示形式,是否能由另乙個的16位二進位制表示形式經過迴圈左移若干位而得到。
迴圈左移和普通左移的區別在於:最左邊的那一位經過迴圈左移一位後就會被移到最右邊去。比如:
1011 0000 0000 0001 經過迴圈左移一位後,變成 0110 0000 0000 0011, 若是迴圈左移2位,則變成 1100 0000 0000 0110
input
第一行是個整數n, 0 < n < 300000,表示後面還有n行資料
後面是n行,每行有兩個不大於65535的非負整數
output
對於每一行的兩個整數,輸出一行,內容為yes或no
sample input
4
2 49 18
45057 49158
7 12
sample output
yes
yesyes
no
**分析:必須先了解迴圈移位,然後水過。
ac**:
//bailian-位操作練習
#include
typedef
unsigned
short us;
using namespace std;
intmain()
}if(mark==true) cout<<
"yes\n"
;else cout<<
"no\n";}
return0;
}
J 位操作練習
include using namespace std include string change long int a while res.length 16 res.insert 0,1,0 return res int main if flag cout yes else cout no 給出...
位操作 牛客 位操作練習
給出兩個不大於65535的非負整數,判斷其中乙個的16位二進位制表示形式,是否能由另乙個的16位二進位制表示形式經過迴圈左移若干位而得到。迴圈左移和普通左移的區別在於 最左邊的那一位經過迴圈左移一位後就會被移到最右邊去。比如 1011 0000 0000 0001 經過迴圈左移一位後,變成 0110...
J 位操作練習 (Java)
給出兩個不大於65535的非負整數,判斷其中乙個的16位二進位制表示形式,是否能由另乙個的16位二進位制表示形式經過迴圈左移若干位而得到。迴圈左移和普通左移的區別在於 最左邊的那一位經過迴圈左移一位後就會被移到最右邊去。比如 1011 0000 0000 0001 經過迴圈左移一位後,變成 0110...