概述
题目描述:
/*给出一个数字(大于等于0),求出其二进制形式下1的个数*/
思路:
1.可以将1进行左移,如果与这个数字与出来的结果等于1左移出来的结果,此时就有
一个1,循环即可
2.将数字进行右移,然后让其与1相与,若结果为1,则说明此时有一个1,循环即可
3.将这个数字与它减1的数字,若结果不为0,则说明有一个1,循环即可
代码示例:
思路一:
/*给出一个数字(大于等于0),求出其二进制形式下1的个数*/
import java.util.Scanner;
public class Count_One2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = in.nextInt();
Integer sum = Count_one(number);
System.out.println(sum);
}
private static Integer Count_one(int number) {
if(number ==0){
return 0;
}
Integer count = 0;
for(int i = 0;i<32;i++){
if((number&(1<<i))==(1<<i)){
count++;
}
}
return count;
}
}
思路二:
/*给出一个数字(大于等于0),求出其二进制形式下1的个数*/
import java.util.Scanner;
public class Count_One3 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = in.nextInt();
Integer sum = Count_one(number);
System.out.println(sum);
}
private static Integer Count_one(int number) {
if(number ==0){
return 0;
}
Integer count = 0;
for(int i = 0;i<32;i++){
if(((number>>i)&1)==1){
count++;
}
}
return count;
}
}
思路三:
/*给出一个数字(大于等于0),求出其二进制形式下1的个数*/
import java.util.Scanner;
public class Count_One {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number = in.nextInt();
Integer sum = Count_one(number);
System.out.println(sum);
}
private static Integer Count_one(int number) {
if(number ==0){
return 0;
}
Integer count = 0;
while (number!=0){
number = number&(number-1);
count++;
}
return count;
}
}
最后
以上就是霸气西牛为你收集整理的找出1的个数(三种解法)的全部内容,希望文章能够帮你解决找出1的个数(三种解法)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复