时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32M,其他语言64M
本题知识点: 位运算
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入
5
输出
2
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
//当商为1时停止循环
while(n / 2 >= 1){
if(n % 2 == 1){
//当余数为1时计数
count ++;
}
//被除数变为计算出的商
n /= 2;
}
System.out.println(++count);//输出时加上最后的商1
}
}