Accepted
代码
#include <stdio.h>
#include <iostream>
using namespace std;
inline int getDepth(int a) {
int ret = 0;
while(a) {
a>>=1;
ret++;
}
return ret-1;
}
int main() {
int n;
scanf("%d",&n);
for(int i = 1; i<=n; i++) {
int x,y;
scanf("%d%d",&x,&y);
int dep1 = getDepth(x),dep2 = getDepth(y);
int dd1 = dep1,dd2 = dep2;
if(dep1<dep2) {
swap(x,y);
swap(dep1,dep2);
}
while(dep1>dep2) {
x>>=1;
dep1--;
}
while(x!=y) {
x>>=1;
y>>=1;
}
cout<<dd1+dd2-2*getDepth(x)<<endl;
}
return 0;
}