华为oj之求int型正整数在内存中存储时1的个数
题目: 求int型正整数在内存中存储时1的个数
- 热度指数:4427 时间限制:1秒 空间限制:32768K
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
输入例子:
5
输出例子:
2
分析:
看到此题, 想到两种办法:
- 将该整数转为二进制的字符串, 然后去数里面字符
1的个数; - 巧妙使用n&(n-1)计算出1的个数. (参见 剑指offer 面试题10:二进制中1的个数 题解 - CSDN http://blog.csdn.net/lzuacm/article/details/51308149)
下面是用方法2写成的代码, 顺利AC.
#include<cstdio>
#include<iostream>
using namespace std;
int digit1ofNum(int n)
{
int count=0;
while(n != 0)
{
n = n&(n-1);// 每进行一次,将最右侧存有1的bit的值置为0,直到全0,退出循环
count++;
}
return count;
}
int main()
{
int n;
cin>>n;
cout<<digit1ofNum(n)<<endl;
return 0;
}
相关链接:
c++ - Changing integer to binary string of digits - Stack Overflow
http://stackoverflow.com/questions/8222127/changing-integer-to-binary-string-of-digits
c - n & (n-1) what does this expression do? - Stack Overflow
https://stackoverflow.com/questions/4678333/n-n-1-what-does-this-expression-do?noredirect=1&lq=1
c - n & ~(n - 1) What does this function do? - Stack Overflow
https://stackoverflow.com/questions/21502303/n-n-1-what-does-this-function-do
华为oj之求int型正整数在内存中存储时1的个数的更多相关文章
- 牛客网编程练习(华为机试在线训练)-----求int型正整数在内存中存储时1的个数
题目描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 示例1 输入 5 输出 2 P ...
- 求int型正整数在内存中存储时1的个数
题目描述: 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 输入例子: 5 输出例子: ...
- java笔试之求int型正整数在内存中存储时1的个数
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 关键点:n与二进制的1相与:判断最末位是否为1:向右移位. 类似题目是查找输入整数二进制中1的个数. package test; ...
- 求int型正整数在内存中存储时1的个数 && int型的数到底最大是多少?
输入一个int型的正整数(十位数之内!嘞!),计算出该int型数据在内存中存储时1的个数. #include<bits/stdc++.h> using namespace std; int ...
- 【华为机试】—— 15.求int型正整数在内存中存储时1的个数
题目 解法 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner ...
- 华为机试 求int型数据在内存中存储时1的个数
题目描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 输入 5 输出 2 普通运算方 ...
- php实现 求int型数据在内存中存储时1的个数(函数都可自己实现)
php实现 求int型数据在内存中存储时1的个数(函数都可自己实现) 一.总结 一句话总结:函数我们自己都可以实现,尤其是很多基础函数,没有工具的时候自己写. 1.php进制转换函数? base_co ...
- (一)求 int 型数据在内存中存储时 1 的个数
题目:求 int 型数据在内存中存储时 1 的个数 描述:输入一个 int 型数据,计算出该 int 型数据在内存中存储时 1 的个数 运行时间限制: 10 sec 内存限制:128 MByte 输入 ...
- 求int型数据在内存中存储时1的个数
1.求int型数据在内存中存储时1的个数 输入一个int型数据,计算出该int型数据在内存中存储时1的个数. 我们非常easy想到例如以下方法: #include <iostream> u ...
随机推荐
- Kali Linux & Metasploit Framework
systemctl enable postgresql.service systemctl start postgresql.service # systemctl status postgresql ...
- redux+saga+reducer
saga.js这个文件里面的函数实际没有在其他jsx中引用吧?这个文件的作用就是把异步数据拿到,放进reducer,如果jsx想取,需要结合connect来取数据.
- 常用jq代码
1. 只允许输入数字,且禁止输入法 <html> <head> <script type='text/javascript' src='../../js/jquery.m ...
- css3_transition: 体验好的过渡效果。附 好看的按钮
利用css的transition属性详解,上图就是利用transition效果做的一个按钮. transition属性://举例子:transition:all 1s ease;transition: ...
- java中的异常(二)
异常的分类 在使用上 Error不用管他虚拟机错误 Exception必须要用catch抓 RuntimeExcption可以处理也可以不用处理 说明 Error:称为错误,由java虚拟机生成并抛出 ...
- Git SSL公钥密钥生成
下面教大家简单易懂的五步配置好密钥 第一次配置ssh 和ssl git config --global --list 查看git的配置 步骤: 1. git config --global user. ...
- Docker安装ngnix使用ping报错
最近在学习docker时,由于docker维护的dockerHub远程仓库的镜像文件比普通的文件小得多,所以经常碰到的情况是,一般常用的命令,会出现no command的情况.今天安装ping的时候就 ...
- PeopleSoft OLE Automation error in Workbooks.Open: ObjectDoMethod: Microsoft Excel 不能访问文件
os: WinServer 2012 R2 64位 问题描述:PeopleSoft Web端运行AE 报上图错误,AD工具直接Test正常 解决方案: 运行> dcomcnfg 这将打开组件服务 ...
- IaaS,PaaS和SaaS
云计算的三种服务模式:IaaS,PaaS和SaaS IaaS: Infrastructure-as-a-Service(基础设施即服务)是第一层. PaaS: Platform-as-a-Servic ...
- angular.lowercase()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...