描述 |
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 |
---|---|
知识点 | 位运算 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 |
输入一个byte数字 |
输出 |
输出转成二进制之后连续1的个数 |
样例输入 | 3 |
样例输出 | 2 |
package com.oj; import java.util.HashMap; import java.util.Scanner; public class Test2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int num = in.nextInt(); String binary = Integer.toBinaryString(num); //System.out.println(binary); int max = 0; int count = 0; for(int i = 0;i < binary.length(); i++) if(binary.charAt(i)=='0'){ if(count>max){ max = count; count = 0; } }else if(binary.charAt(i)=='1'&&i!=binary.length()-1){ count++; }else if(binary.charAt(i)=='1'&&i==binary.length()-1){ count++; if(count>max) max = count; } System.out.println(max); } }