ECNU OJ 2876 二进制位不同的个数

对于两个非负整数 x 和 y,函数 f(x,y) 定义为 x 和 y 在二进制表示时,其对应位不同的个数。例如,f(2,3)=1, f(0,3)=2, f(5,10)=4。

现在给出一组非负整数 x 和 y,计算 f(x,y) 的值。

Input

第一行:一个整数 T (0 < T <= 100 ),表示有 T 组测试数据。

第 2 行- T+1 行:每行输入两个正整数 x 和 y,(0 ≦x, y ≦1000000 )。两个整数之间有一个空格。

Output

对每组测试数据,输出一行。

int main()
{
    int t,x,y,z,q;
    scanf(“%d”,&t);
    while(t–)
    {
        scanf(“%d %d”,&x,&y);
        z=0;
        for(q=0;q<32;q++)
        {
            if((x%2)!=(y%2))
            z++;
            x>>=1;
            y>>=1;
            }
        printf(“%d\n”,z);
    }
    return 0;
}

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注