java中最简单的方法,没有之一。

转化为字符串就行了,char数组

如果是1,count++,max = Math.max(count,max),统计一下最大值就可以了。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            
            int n = scan.nextInt();
            String str = Integer.toString(n,2);
            int count = 0;
            int max = 0;
            char[] ch = str.toCharArray();
            for(char c : ch){
                if(c == '1'){
                    count++;
                }
                else if(c == '0'){
                    count = 0;
                }
                max = Math.max(max,count);
            }
            System.out.println(max);
            
            
        }
        scan.close();
    }
}