看起来简单,实际也简单。就是感觉自己写复杂了
求最大连续bit数
https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String binaryString = Integer.toBinaryString(n);
int index = 0;
int maxCount = 0;
int count = 0;
while (true) {
if (index == binaryString.length()){
// 将最大值交换到外部
if (count > maxCount){
maxCount = count;
}
break;
}
// 由于Integer.toBinaryString(n)转换成二进制会把前面的0舍去,所以第一次循环到的数一定是1
if (binaryString.charAt(index++) == '1') {
count++;
continue;
}
// 当不是数字1时,将最大值交换到外部
if (count > maxCount){
maxCount = count;
}
// 当不是数字1时,重新计数
count = 0;
}
System.out.println(maxCount);
}
}
