列表

详情


OR76. 两个整数二进制位不同个数

描述

输入两个整数,求两个整数二进制格式有多少个位不同

输入描述

两个整数

输出描述

二进制不同位的个数

示例1

输入:

22 33

输出:

5

原站题解

C++14 解法, 执行用时: 1ms, 内存消耗: 356KB, 提交时间: 2020-07-13

#include <stdio.h>


int main()
{
    int n1, n2, count = 0;
    scanf("%d %d", &n1, &n2);
    while (n1 || n2)
    {
        if (n1 % 2 != n2 % 2)
        {
            ++count;
        }
        n1 /= 2;
        n2 /= 2;
    }
    printf("%d", count);

    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2019-03-14

#include<stdio.h>
int main()
{
    int i,j;
    scanf("%d%d", &i, &j);
    i ^= j;
    int s = 0;
    while(i)
    {
        i = i & (i - 1);
        s++;
    }
    printf("%d\n", s);
    return 0;
}

上一题