• 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;
    	}
    }
    


  • 相关阅读:
    log4j基本使用方法
    Spring MVC中页面向后台传值的几种方式
    JXL操作Excel
    模板
    url&视图
    Git for PyCharm
    ServletConfig和ServletContext
    Exception和IOException之间的使用区别
    java学习一目了然——异常必知
    java学习一目了然——IO
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3478739.html
Copyright © 2020-2023  润新知