牛客网_华为机试_015_求int型正整数在内存中存储时1的个数 (十进制转二进制)
来源:互联网 发布:ipad音乐软件 方块 编辑:程序博客网 时间:2024/05/14 07:01
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入
5
输出
2
- 笔
题目地址:https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9?tpId=37&tqId=21238&tPage=1&rp=&ru=%2Fta%2Fhuawei&qru=%2Fta%2Fhuawei%2Fquestion-ranking
思路一:利用十进制转二进制的方法,统计1的个数。事实证明这种方法是大错特错了,因为效率不高且没有考虑负数的情况,负数补码,完全不能这么计算
#include <iostream> //错误解法,能通过牛客网OJusing namespace std;int main(){ int num = 0; while(cin >> num){ int count = 0; while(num != 0) { if(num % 2) count++; num /= 2; } cout << count << endl; } return 0;}
思路二: eg:假设整型占4位空间, 让一个数分别和 0001 0010 0100 1000位于,结果非零则说明有一个1,即从1开始位于,下一次1左移1位,再下次左移,一直到左移到值为0。
/基本解法,eg分别用0001、0010、0100、1000位与,非零则说明有1int NumOf1(int num){int flag = 1;int count = 0;while (flag){if (num & flag)++count;flag = flag << 1;}
思路三:终极美滋滋解法,面试官的最爱。
eg: 当一个数减去1,在和原数位与,就会把最右边的第一个1变为0. 如:
原数 n = 1100 n-1 = 1011
n & (n - 1) = 1000 最右边第一个1变为0,如此下去直至n为0,次数即为1的个数
//优秀解法 num = (num - 1) & n 将右边的1全置为0int NumOf1Ex(int num){int count = 0;while (num){num = (num - 1) & num;++count;}return count;}
阅读全文
0 0
- 牛客网_华为机试_015_求int型正整数在内存中存储时1的个数 (十进制转二进制)
- nowcoder华为机试:求int型正整数在内存中存储时1的个数
- 求int型数据在内存中存储时1的个数 (十进制转二进制)
- java-----------华为机试----------求int型正整数在内存中存储时1的个数 (水题for java)
- Java - 华为机试训练 - 求int型正整数在内存中存储时1的个数
- 《华为机试在线训练》之求int型正整数在内存中存储时1的个数
- 华为机试——求int型正整数在内存中存储时1的个数
- 【华为OJ15】求int型正整数在内存中存储时1的个数
- 华为oj之求int型正整数在内存中存储时1的个数
- 华为OJ:求int型正整数在内存中存储时1的个数
- 【华为OJ】求int型正整数在内存中存储时1的个数
- 华为——求int型正整数在内存中存储时1的个数
- 华为机试---求int型数据在内存中存储时1的个数
- 华为机试题--13.求int型数据在内存中存储时1的个数
- Java-NowCoder-求int型正整数在内存中存储时1的个数
- nowcoder--求int型正整数在内存中存储时1的个数
- 求int型正整数在内存中存储时1的个数
- 14:求int型正整数在内存中存储时1的个数
- spring boot 集成 elasticsearch 5.x
- 【git push报错error: failed to push some refs to 'git@github.com】
- MySQL数据库事务隔离级别(Transaction Isolation Level)
- 互联网开发相关技术
- COCOS传递按钮指针给下一个场景修改按钮图片
- 牛客网_华为机试_015_求int型正整数在内存中存储时1的个数 (十进制转二进制)
- JS_多选框全选与取消全选的实现
- HTTPS简介
- 一、JAVA8学习笔记 Lambda表达式快速入门
- c++ new delete 常踩的坑
- Java实战篇
- struts2有哪些优点?
- 微风集
- tensorflow函数简介