题目描述:

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

输入:

输入可能包含多个测试样例。

对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。

。n保证是int范围内的一个整数。

输出:

对应每个测试案例,

输出一个整数,代表输入的那个数中1的个数。

样例输入:

3

4

5

-1

样例输出:

1

2

32

【解题思路】既然是二进制表示,我们只能从二进制入手,而二进制与位操作是紧密相关的,所以顺水推舟,很容易想多用位操作来实现。既然要统计1的个数,我们可以用一个只有一个1的二进制表示的数与目标数相与,从而就能得到该数1位置对应的目标数二进制位置是否为1,相与的结果为0则给位为0,否则为1。然后依次将数中1位置右移,并与目标数的二进制进行相与即可。

AC code:

#include <stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;++i)
{
int tt;
scanf("%d",&tt);
int cnt=0,t=1,idx=0;
while(idx<32)
{
if(tt>=0 && t>tt)
break;
if(tt&t)
++cnt;
t<<=1;
++idx;
}
printf("%d\n",cnt);
}
}
return 0;
}
/**************************************************************
Problem: 1513
User: huo_yao
Language: C
Result: Accepted
Time:80 ms
Memory:912 kb
****************************************************************/

题目链接:http://ac.jobdu.com/problem.php?pid=1513

【剑指Offer面试编程题】题目1513:二进制中1的个数--九度OJ的更多相关文章

  1. 《剑指offer》— JavaScript(11)二进制中1的个数

    二进制中1的个数 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路一 用1和n进行位运算,结果为1则n的二进制最右边一位为1,否则为0: 将n二进制形式右移1位,继续与 ...

  2. 剑指offer—算法之位运算(二进制中1的个数)

    位运算: 左移:m<<n将m左移n位,左移后低位补充0: 右移:m>>n将m右移n位,右移后高位补充的是符号位,负数补充1,整数补充0.(正数的边界值为(1,ox7FFFFFF ...

  3. (剑指Offer)面试题10:二进制中1的个数

    题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路: 很明显,这道题考察的是位运算. 1.依次将整数右移,判断整数最后一位是否为1(&1): 问题:如果该整数为负数 ...

  4. 【剑指Offer面试编程题】题目1509:树中两个结点的最低公共祖先--九度OJ

    题目描述: 给定一棵树,同时给出树中的两个结点,求它们的最低公共祖先. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为一个数n(0<n<1000),代表测试样例的个数 ...

  5. 【剑指Offer面试编程题】题目1508:把字符串转换成整数--九度OJ

    题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入为一个合法或者非法的字符串,代表一个整数n(1<= n&l ...

  6. 【剑指Offer面试编程题】题目1507:不用加减乘除做加法--九度OJ

    题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入为两个整数m和n(1<=m,n<=10 ...

  7. 【剑指Offer面试编程题】题目1506:求1+2+3+...+n--九度OJ

    题目描述: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 输入: 输入可能包含多个测试样例. 对于每个 ...

  8. 【剑指Offer面试编程题】题目1356:孩子们的游戏(圆圈中最后剩下的数)--九度OJ

    题目描述: 每年六一儿童节,JOBDU都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为JOBDU的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈. ...

  9. 【剑指Offer面试编程题】题目1355:扑克牌顺子--九度OJ

    题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他 ...

随机推荐

  1. POJ 1995 Raising Modulo Numbers(快速幂)

    嗯... 题目链接:http://poj.org/problem?id=1995 快速幂模板... AC代码: #include<cstdio> #include<iostream& ...

  2. mongodb 用户指引

    维护人:陈权 一.mongodb install on linuxcurl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...

  3. MQTT 入门介绍

    一.简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级& ...

  4. 《MFC dialog中加入OpenGL窗体》

    <MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控 ...

  5. Spark Streaming实践和优化

    发表于:<程序员>杂志2016年2月刊.链接:http://geek.csdn.net/news/detail/54500 作者:徐鑫,董西成 在流式计算领域,Spark Streamin ...

  6. 201771010135杨蓉庆 《面对对象程序设计(java)》第七周学习总结

    学习目标 1.深入理解OO程序设计的特征:继承.多态: 2.熟练掌握Java语言中基于类.继承技术构造程序的语法知识: 3.利用继承定义类设计程序,能够设计开发含有1个主类.2个以上用户自定义类的应用 ...

  7. SpringBoot学习笔记(三)——Springboot配置文件

    SpringBoot不像之前用spring+springMVC做项目的时候,他不需要配置大量的看上去很乱很复杂的xml配置文件.在SpringBoot中你可以通过java代码和注解配置项目,也可以通过 ...

  8. @ResponseBody是如何起作用的

    前言 最近参与的项目中,接口中返回的日期格式不对,发现项目中配置了fastjson作为spring的数据转换器,于是使用了fastjson的字段格式化转换注解 发现不起作用.这让我很疑惑,然后在fas ...

  9. 工业现场总线和工业以太网和工业IIOT

    IIoT 称为工业物联网 ,包括机器的预测性维护和生产单元的自动化控制.以更高的速度获取和访问更大量的数据,打破数据孤岛,并将所有人员,数据和流程从工厂车间连接到执行办公室.企业领导者可以使用 IIo ...

  10. kudu-master服务启动失败

    执行service kudu-master start ,  提示启动失败failed. 进入报错日志目录  (cd /var/log/kudu/),看到报错信息(vim kudu-master.ER ...