-
令
。
-
选择任意一个整数
,令
。
请问最少操作几次才可以让
变成
。
本题有多组测试数据第一行输入一个整数,表示数据组数。
对于每组测试数据:每行输入两个整数。
对于每组测试数据,输出把变成
的最小操作次数。
4 1 4 0 5 8 8 123987 444
2 1 0 12
对于第一组测试数据,一种操作次数最少的方式是:先用操作 2,选,令
,然后用操作 1,令
,共 2 次操作。
using ll = long long;
int main() {
int t;
cin >> t;
while(t --) {
ll x, y;
cin >> x >> y;
ll len = 0;
while(x && (x & y) != x) {
x >>= 1;
len ++;
}
if(x == y) cout << len;
else cout << len + 1;
cout << endl;
}
}