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();
}
}