题解 | #两个整数二进制位不同个数#

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

https://www.nowcoder.com/practice/16e48900851646c0b2c6cdef9d7ea051

#include <stdio.h>
int main()
{
	int n,m;
	scanf("%d %d", &n,&m);
	int i = 0;
	int num = 0;
	int arr1[32] = { 0 };
	int arr2 [32] = { 0 };
	for (i = 0; i < 32; i++)
	{
		num = 1 & (n >> i);
		arr1[i] = num;
		//printf("%d ", num);
	}
	int j = 0;
	int num1 = 0;
	for (j = 0; j < 32; j++)
	{
		num1 = 1 & (m >> j);
		arr2[j] = num1;
		//printf("%d ", num1);
	}
	int count = 0;
	j = 0;
	for (i = 0; i < 32; i++)
	{
		while (j < 32)
		{
			if (arr1[i] != arr2[j])
			{
				count++;
			}
			j++;
			break;
		}
	}
	printf("%d", count);
	return 0;
}

全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务