题解 | #求最大连续bit数#

求最大连续bit数

http://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int input = 0;
        int counter = 0;
        int max=0;
        while (sc.hasNext()){
            counter=0;
            max=0;
            input=sc.nextInt();
            while (input!=0){
                if(input-input/2*2==1){
                    input=(input-1)/2;
                    counter++;
                    if(max<counter){
                        max=counter;
                    }
                }else {
                    input/=2;
                    counter=0;
                }
            }
            System.out.println(max);
        }
    }
}

先上代码。和求1个数的题比较像,但是此题目略有不同,是要求连续的1的个数。那么只需要当出现1时计数器自增,出现0时计数器清零,使用max变量更新已经出现的最大的连续个数即可。还是使用了除2取余法来计算出现的1的个数。

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务