题解 | 求最大连续bit数
解题思路
- 使用两个值:pre和cur,pre保存前一个1的连续次数,cur持续累加
- 使用 (n&1) ==1 和 n=n>>1 来不断遍历数字的二进制数
- 最后输出 pre和cur比较后其中的最大的值
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(); int pre = 0; int cur = 0; while (n > 0) { if ((n & 1) == 1) { cur++; } else { if (cur > pre) { pre = cur; } cur = 0; } n = n >> 1; } System.out.print(pre > cur ? pre : cur); } }