在信息编码中,两个二进制编码的对应位取值不同的数量称为这两个编码的海明距离。例如:10101和00110从第一位开始依次有第一位、第四、五位不同,则海明距离为3。
若两个二进制编码的每一位都不相同,则这两个编码产生了海明悬崖(Hamming Cliff)。例如,15的二进制编码为01111,16的二进制编码为10000,则产生“Hamming Cliff”。
任务:给你两个正整数,请你判断是否会产生“Hamming Cliff”。
输入格式:
输入数据的第一行为一个正整数T, 表示测试数据的组数。然后是T组测试数据(1<=T<=30)。
每组测试数据输入两个正整数n,m(1<=n<=231-1)。
说明:若两个二进制编码长度不等,则在较短的编码前面添加前导0。
输出格式:
对于每组测试数据,若产生“Hamming Cliff”输出“Yes”,否则输出“No”。引号不必输出。
输入样例:
3
15 16
2 3
512 511
输出样例:
Yes
No
Yes
n=int(input())
ls,=[],
for i in range(n):
l=input().split()
a,b=bin(int(l[0])),bin(int(l[1]))
a,b=a[2:],b[2:]
print('{},{}'.format(a,b))
if len(a)!=len(b):
if len(a)>len(b):
b='0'*(len(a)-len(b))+b
else:
a='0'*(len(b)-len(a))+a
count=0
for i in range(len(a)):
if a[i]!=b[i]:
count+=1
if count==len(a):
ls.append('Yes')
else:
ls.append('No')
for i in ls:
print(i)