1. 程式人生 > 實用技巧 >461. 漢明距離

461. 漢明距離

461. 漢明距離

兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。

給出兩個整數 x 和 y,計算它們之間的漢明距離。

注意:
0 ≤ x, y < 231.

示例:

  輸入: x = 1, y = 4

  輸出: 2

解釋:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑

程式碼:

#include<iostream>
#include<bits/stdc++.h>
#include<cstring>
#include<vector>
using namespace std;
int
main(){ int x,y,sum=0; cin>>x>>y; while(x>0||y>0){ if ((x&1)&&!(y&1)) { sum++; }else if (!(x&1)&&(y&1)) { sum++; } x>>=1; y>>=1; // cout<<"x="<<x<<" y="<<y<<endl;
} cout<<sum<<endl; }

int hammingDistance(int x, int y) {
    int  n = x ^ y, count = 0;
    while(n)
    {
        cout<<"n="<<n<<endl;
        n &= n-1;
        count++;
    }
    return count;
}