C语言/461.(汉明距离)Hamming Distance

先上题目




思路:两个整数的二进制表示形式之间,不同的位数的“数量”。

两种方式,一、先转换为二进制,逐位比较。二、先将两个整数进行^(异或,相同为零,不同为1),同时进行计数可以求出相同或不同的数量。


代码部分:

int hammingDistance(int x, int y) {
    int n,temp,count=0;        //count为计数变量
    n=x^y;
    while(n){
        temp=n%2;
        if(temp==1){
            count++;
        }
        n=n/2;
    }
    return count;
}
注意处理数字的范围

猜你喜欢

转载自blog.csdn.net/qq_38959715/article/details/80874176