1513:二进制中1的个数 @jobdu
题目1513:二进制中1的个数
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:1341
解决:455
- 题目描述:
-
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- 输入:
-
输入可能包含多个测试样例。
对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。
。n保证是int范围内的一个整数。
- 输出:
-
对应每个测试案例,
输出一个整数,代表输入的那个数中1的个数。
- 样例输入:
-
3
4
5
-1
- 样例输出:
-
1
2
32
重点是右移ptr而不是把n左移,为了避免左移负数的问题
和
用不等于0来判断避免了繁琐!
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner; public class S10 { public static void main(String[] args) throws FileNotFoundException {
BufferedInputStream in = new BufferedInputStream(new FileInputStream("S10.in"));
System.setIn(in);
Scanner cin = new Scanner(System.in); while (cin.hasNextInt()) {
long n = cin.nextInt();
for(int i=0; i<n; i++){
System.out.println(get1s(cin.nextInt()));
}
}
} public static int get1s(int n){
int cnt = 0;
int ptr = 1;
for(int i=0; i<32; i++){ // 重点是右移ptr而不是把n左移,为了避免左移负数的问题
if((n&(ptr<<i)) != 0){ // 用不等于0来判断避免了繁琐!
cnt += 1;
}
}
return cnt;
}
}
1513:二进制中1的个数 @jobdu的更多相关文章
- 剑指Offer - 九度1513 - 二进制中1的个数
剑指Offer - 九度1513 - 二进制中1的个数2013-11-29 23:35 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: 输入可能包含多个测试样例. ...
- 九度OJ 1513 二进制中1的个数
题目地址:http://ac.jobdu.com/problem.php?pid=1513 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: 输入可能包含多个测试样 ...
- 剑指Offer面试题:9.二进制中1的个数
一.题目:二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. 二.可能引起死循环的解法 一个 ...
- 剑指Offer:二进制中1的个数
题目:输入一个整数,输出该数二进制表示中1的个数. // 二进制中1的个数 #include <stdio.h> int wrong_count_1_bits(int n) // 错误解法 ...
- 基于visual Studio2013解决面试题之0410计算二进制中1的个数
题目
- Algorithm --> 二进制中1的个数
行文脉络 解法一——除法 解法二——移位 解法三——高效移位 解法四——查表 扩展问题——异或后转化为该问题 对于一个字节(8bit)的变量,求其二进制“1”的个数.例如6(二进制0000 0110) ...
- [PHP]算法-二进制中1的个数的PHP实现
二进制中1的个数: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路: 1.右移位运算>> 和 与运算& 2.先移位个然后再与1 &运算为1的就是1 ...
- 《剑指offer》 二进制中1的个数
本题来自<剑指offer> 二进制中1的个数 题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路: 两种思路: 第一种:对n进行左移,检测最后一位是否为1,但考 ...
- 剑指offer编程题Java实现——面试题10二进制中1的个数
题目: 请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数.例如,把9表示成二进制是1001,有2位是1,该函数输出2解法:把整数减一和原来的数做与运算,会把该整数二进制表示中的最低位的1变 ...
随机推荐
- delphi xe5 android 开发数据访问手机端 解决乱码的办法
经过测试,将sqlserver里的字段由varchar 或者char 改为 nvarchar 或者nchar 然后在手机端的clientdataset 增加字段的时候数据类型选择widestrin ...
- 上下切换js
<div class="wview"> <span class="prevs" id="prevs-j"></ ...
- oracle----复制表中的数据
两种方法: 1. 在创建表的时候将数据从其他表中复制过来(并且表的结构也复制过来): 语法: CREATE TABLE table_name AS SELECT column1,......|* FR ...
- Codeforces Round #210
A:简单题: #include<cstdio> using namespace std; int n,k; int main() { scanf("%d%d",& ...
- php smarty foreach循环注意
在template中,要注意{foreach from=$arr item=value}其中的value不需要$美元符号
- Java程序发展之路
- Android fragment 回调函数改进
由于fragment的onResume()等回调的调用时机与Activity不一样,导致用起来比较麻烦,所以我重新封装了一下回调函数,十分简单. 使用时只需要继承此基类,使用onFragmentXXX ...
- 【HDOJ】1706 The diameter of graph
这么个简单的题目居然没有人题解.floyd中计算数目,同时注意重边. /* 1706 */ #include <iostream> #include <string> #inc ...
- 【HDOJ】1003 Max Sum
最开始使用递归DP解,stack overflow.化简了一些,复杂度为O(n)就过了. #include <stdio.h> int main() { int case_n, n; in ...
- win2003+IIS6+PHP5.3.8+MSSQL2008的安装配置