1513:バイナリ中1の個数@jobdu
1252 ワード
タイトル1513:バイナリの中の1の個数
時間制限:1秒
メモリ制限:128メガ
特殊問題:いいえ
提出:1341
解決:455
タイトルの説明:
整数を入力し、その数のバイナリ表現の1つの数を出力します.ここで負数は補数で表される.
入力:
入力には、複数のテストサンプルが含まれる場合があります.各入力ファイルについて、最初の行には、テストサンプルの数を表す整数Tが入力されます.テストサンプルごとに整数として入力します.nはint範囲内の整数であることを保証する.
出力:
各テストケースに対応して、入力した数の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;
}
}