[05]二进制个位不同个数-吉比特2018秋

2018-10-21  本文已影响28人  jdzhangxin

1.题目描述

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

2.题目解析

3.参考答案

#include <bits/stdc++.h>
using namespace std;

int main(){
  int n = 0;
  int m = 0;
  scanf("%d%d",&n,&m);
  int num = n^m;
  int count = 0;
  while(num != 0){
    if(num & 0x1) ++count; // 判断右端第一位是不是1
    num = num>>1; // 右移一位
  }
  printf("%d\n",count);
}

或者

#include <bits/stdc++.h>
using namespace std;
int main(){
  int n = 0;
  int m = 0;
  scanf("%d%d",&n,&m);
  int num = n^m;
  int count = 0;
  while(num != 0){
    ++count;
    num = (num-1)&num;// 每次去除1位
  }
  printf("%d\n",count);
}

牛客题目

上一篇下一篇

猜你喜欢

热点阅读