100 1的个数
来源:互联网 发布:尼特罗会长知乎 编辑:程序博客网 时间:2024/05/08 19:59
1的个数
时间限制:3000 ms | 内存限制:65535 KB
难度:1
- 描述
- 小南刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗?
- 输入
- 第一行输入一个整数N,表示测试数据的组数(1<N<1000)
每组测试数据只有一行,是一个整数M(0=<M<=10000) - 输出
- 每组测试输出占一行,输出M的二进制表示中1的个数
- 样例输入
3467
- 样例输出
12
3
#include <iostream>using namespace std;int main(){int N;cin >> N;while(N--){int M;int sum=0;cin >> M;while(M){/*<span style="white-space:pre"></span>M=M&(M-1)<span style="white-space:pre"></span>达式的意思就是:<span style="white-space:pre"></span>把x的二进制表示从低位开始,<span style="white-space:pre"></span>将遇到的第一个为1的比特位置0。*/M=M&(M-1);sum++;}cout << sum << endl;}return 0;}
这题的第一反应是先把数字转换成二进制,再判断每位数字是否为1,但又想到了位运算。M与M-1相差1,那么每次按位与操作,都会使二进制中的最后一个1置零(原来是0的位,向上一位借2后减1后变为1;原来是1的位,减1后变为0,两种情况按位与的结果都为零,达到预期效果)
0 0
- 100 1的个数
- 100 1的个数
- 100 1的个数
- NYOJ 100 1的个数
- NYOJ 100 1的个数
- NYOJ 100 1的个数
- 南阳 100 1的个数
- 南阳 100 1的个数
- 1的个数 NYOJ 100
- nyoj-100-1的个数
- NYOJ 100 1的个数
- 【NYOJ】[100]1的个数
- 【NYOJ-100】 1的个数
- 题目100 1的个数
- 题目100-1的个数
- 查找1亿个数里面最大的100个数。
- nyoj.100 1的个数 20141105
- 1到100中9的个数
- 《您的设计模式》(CBF4LIFE)之“迭代器模式”【整理】
- 直播如何解决延时问题?
- burpsuite response返回中文乱码问题
- mysql的数据文件放到哪了?
- CVPR 2016-10-27
- 100 1的个数
- mysql-5.7.12免安装版下载和配置
- Ubuntu 查看磁盘空间大小命令
- 如何搭建个人网站
- 带大家一步一步的封装一个聊天键盘(一)
- String.format用法
- iOS 文件下载及上传
- poj 2663 Tri Tiling--状压dp
- telnet命令使用