(java实现)
题目描述:
求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
本题含有多组样例输入。
输入描述:
输入一个byte数字
输出描述:
输出转成二进制之后连续1的个数
示例1:
输入
3
5
输出
2
1
问题分析:
略
相关知识:
略
参考代码:
思路一实现:
import java.util.*;
public class Main {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
while (input.hasNext())
{
int n = input.nextInt();
String s = Integer.toBinaryString(n);
char[] ch = s.toCharArray();
int max = 0;
int tmp = 0;
for (int i=0; i<ch.length; i++)
{
if ('1' == ch[i])
{
tmp++;
}else if ('0' == ch[i])
{
if (max<tmp)
{
max = tmp;
//tmp = 0; //
}
tmp = 0; //
}
}
if (max<tmp)
{
max = tmp;
}
System.out.println(max);
}
}
}
思路二实现: