JD 1513:二进制中1的个数
来源:互联网 发布:免费手机拍证件照软件 编辑:程序博客网 时间:2024/06/06 17:31
- 题目描述:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- 输入:
输入可能包含多个测试样例。
对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。
。n保证是int范围内的一个整数。
- 输出:
对应每个测试案例,
输出一个整数,代表输入的那个数中1的个数。
- 样例输入:
345-1
- 样例输出:
1232
本题正负都有
代码如下:
#include <iostream>#include <string>#include <string.h>#include <map>#include <stdio.h>#include <algorithm>#include <queue>#include <vector>#include <math.h>#include <set>#define Max(a,b) ((a)>(b)?(a):(b))#define Min(a,b) ((a)<(b)?(a):(b))#define SWAP(a , b){ int temp = a; a = b; b = temp;}using namespace std;int main(){ int n,k; cin >> n; while(n--) { scanf("%d",&k); int num = 0; /*while(k)//正负皆可 { k &= (k - 1); num++; }*/ /*while(k)//只适用于正数 { if(k%2 == 1) num++; k = k/2; }*/ while(k)//只适用于正数 { num += k&0x01; k >>= 1; } printf("%d\n",num); } return 0;}
扩展问题:给二进制表示的两个数A,B,将A变成B,至少需要改变多少位?
0 0
- JD 1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 1513:二进制中1的个数 @jobdu
- 题目1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 题目1513:二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 二进制中1的个数
- 最小生成树问题
- Oracle 查看表空间使用率 SQL 脚本
- 语音识别资料
- Eclipse C/C++开发环境搭建
- java中ArrayList 、LinkList区别
- JD 1513:二进制中1的个数
- libusb太强大了
- 第一周【项目2 - 胖子伤不起】
- 结构体的简单应用
- 最常用的开源游戏引擎
- JadClipse 反编译
- UVa 10341 - Solve It
- 图片缓存
- CentOS 6.5挂载windows NTFS硬盘