两个整数间的汉明距离指的是这两个数对应二进制位不同的位置的数目。输入两个整数x,y, 0<=x,y<=231。输出x,y的汉明距离。
在一行输入x,y。
在一行输出x,y汉明距离。
在这里给出一组输入。例如:
1 4在这里给出相应的输出。例如:
2 #include<stdio.h> int main() { long long z1[100000]={0}, z2[100000]={0}, y1, y2, num1 = 0, num2 = 0, sum = 0; scanf("%d%d", &y1, &y2); do { z1[num1++] = y1 % 2; y1/=2; } while(y1 != 0); do { z2[num2++] = y2 % 2; y2/=2; } while(y2 != 0); if(num1 > num2) { for(int i = 0; i < num1; i++) { if(z1[i] != z2[i]) sum++; } } else { for(int i = 0; i < num2; i++) { if(z1[i] != z2[i]) sum++; } } printf("%d", sum); }