题目描述:
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入描述:
输入一个byte数字
输出描述:
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入描述:
输入一个byte数字
输出描述:
输出转成二进制之后连续1的个数
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext())
{
int n = scanner.nextInt();
String str = Integer.toBinaryString(n);
int count = 0;
int max = 0;
for (int i = 0; i < str.length() - 1; i++)
{
if (str.charAt(i) == '1' && str.charAt(i) == str.charAt(i + 1))
{
count++;
max = Math.max(max, count);
}
else
count = 0;
}
System.out.println(max + 1);
}
}
}
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext())
{
int n = scanner.nextInt();
int count = 0;
int max = 0;
while (n != 0)
{
if ((n & 1) == 1)
{
count++;
max = Math.max(max, count);
}
else
count = 0;
n >>= 1;
}
System.out.println(max);
}
}
}