
示例1
输入:200
输出:2
说明:
在这个样例中,十进制 200 等于二进制 11 001 000,其中最长连续 1 段的长度为 2。

实现代码:
java
public static void main(String[] args) {
// 创建Scanner对象读取输入
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 读取输入的十进制整数
int maxLength = 0; // 记录最长连续1的长度
int currentLength = 0; // 记录当前连续1的长度
// 遍历二进制位
while (n > 0) {
if ((n & 1) == 1) {
// 当前位是1,增加当前连续1的长度
currentLength++;
maxLength = Math.max(maxLength, currentLength);
} else {
// 当前位是0,重置当前连续1的长度
currentLength = 0;
}
// 右移一位,处理下一个二进制位
n >>= 1;
}
System.out.println(maxLength); // 输出结果
scanner.close(); // 关闭Scanner
}