在一行上输入一个整数
,代表给定的数字。
在一行上输出一个整数,代表
的二进制表示中
的个数。
10
2
十进制
到
的二进制表示如下:
十进制
等于二进制
;
十进制
等于二进制
;
十进制
等于二进制
;
十进制
等于二进制
;
十进制
等于二进制
;
十进制
等于二进制
;
十进制
等于二进制
;
十进制
等于二进制
;
十进制
等于二进制
;
十进制
等于二进制
。
0
0
包装类转换成二进制
对字符串统计个数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner (System.in);
while(sc.hasNext()){
int n = sc.nextInt();
String str = Integer.toBinaryString(n);
int count = 0;
for(int i = 0;i<str.length();i++){
if(str.charAt(i)=='1')
count++;
}
System.out.println(count);
}
}
} import java.util.Scanner;
import java.util.Stack;
public class ShuZiDianDao {
num=int(raw_input(""))
num=str(bin(num))
len1=len(num)
count=0
for i in range(2,len1):
if num[i]=='1':
count+=1
print count
下面是C++实现的代码
#include<iostream>
using namespace std;
int main()
{
int num = 0;
cin >> num;
int count = 0;
while (num)
{
count++;
num = num&(num - 1);
}
cout << count << endl;
system("pause");
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
unsigned int data;
cin >> data;
int count = 0;
int temp;
while(data)
{
temp = data%2;
data /= 2;
if(temp == 1)
count++;
}
cout << count << endl;
return 0;
} import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int num = sc.nextInt();
String str = Integer.toBinaryString(num);
str = str.replaceAll("0","");
System.out.println(str.length());
}
sc.close();
}
}
使用java语言,将数字转为二进制字符串之后,一般是遍历字符串,统计1的个数,这里取巧,通过替换0为空字符,剩下的就是1,然后计算二进制字符串的长度。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
while (n > 0) {
count += (n & 1);
n >>= 1;
}
System.out.println(count);
}
} System.out.println("数组".split ("1").length);
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int a = in.nextInt();
String s = Integer.toBinaryString(a);
int result = 0;
for (int i = 0;i<s.length();i++){
if (s.charAt(i)=='1') result++;
}
System.out.println(result);
}
}
}