码迷,mamicode.com
首页 > 编程语言 > 详细

c语言:输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n

时间:2016-02-15 07:06:16      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:c语言 剑指offer 输入两个整数m和n   改变m的二进制表示中的多少位才能得到n

输入两个整数mn,计算需要改变m的二进制表示中的多少位才能得到n

解:第一步求这两个数的异或运算,将异或运算结果存起来;第二步统计这个运算结果当中1的位数

程序:

#include<stdio.h>


int count(int m,int n)

{

int t,count=0;

t = m^n;

while (t)

{

count++;

t=t&(t-1);

}

return count;

}


int main()

{

int num1,num2,ret=0;

printf("请输入两个整数:");

scanf("%d,%d", &num1,&num2);

ret = count(num1,num2);

printf("改变%d的二进制表示中的%d位才能得到%d\n",num1,ret,num2);

return 0;

}


结果:

请输入两个整数:10,13

改变10的二进制表示中的3位才能得到13

请按任意键继续. . .


本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1742006

c语言:输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n

标签:c语言 剑指offer 输入两个整数m和n   改变m的二进制表示中的多少位才能得到n

原文地址:http://yaoyaolx.blog.51cto.com/10732111/1742006

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!