看起来简单,实际也简单。就是感觉自己写复杂了
求最大连续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); } }