题解 | #两个整数二进制位不同个数#
两个整数二进制位不同个数
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; }