兩個整數之間的漢明距離指的是這兩個數對應二進制位不同的位置的數目。
【輸入形式】
給出兩個整數x和y(0<=x,y<2^31),用空格分隔
【輸出形式】
輸出他們之間的漢明距離
【樣例輸出】
1 4
【樣例說明】
00000000 00000000 00000000 00000001
00000000 00000000 00000000 00000100
思路:先對輸入的倆數進行異或操作,相同為0,不同為1;然后判斷含有多少個1即可。
#include <iostream>
#include <stdio.h>
int func(int x);
using namespace std;int main()
{int HM,a,b,distance;cin >> a>>b;HM = a ^ b;distance = func(HM);printf("%d",distance);return 0;
}int func(int x)
{int countx = 0;while(x){countx ++;x = x&(x-1);}return countx;
}