我是靠谱客的博主 霸气西牛,最近开发中收集的这篇文章主要介绍找出1的个数(三种解法),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述:
/*给出一个数字(大于等于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的个数(三种解法)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部