题目描述
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入: 一个byte型的数字
输出: 无
返回: 对应的二进制数字中1的最大连续数
输入描述:
输入一个byte数字
输出描述:
输出转成二进制之后连续1的个数
输入例子:
3
输出例子:
2
最简单的方法:把二进制字符串用0来split称多个数组,输出长度最大的那个数组的长度就行了
import java.util.*;
public class Main{public static void main(String[] args) {Scanner scan=new Scanner(System.in);while(scan.hasNext()){int num=scan.nextInt();String str=Integer.toBinaryString(num);String[] strs=str.split("0");int max=0;for(int i=0;i<strs.length;i++){max=max<strs[i].length()?strs[i].length():max;}System.out.println(max);}}
}