相同与不同首选异或操作
而异或后得到的数只需统计其中1的个数
结合上一篇提到的算法,可以得出以下代码
int Trans(int a)
{
int count = 0;
while (a)
{
a &= a - 1;
count++;
}
return count;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
int c = 0;
c = a ^ b;
int count = Trans(c);
printf("%d", count);
return 0;
}
小白上路,如有错误,还望指正。