1513:バイナリ中1の個数@jobdu

1252 ワード

タイトル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;
	}
}