华为-求最大连续bit数
(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); } } }
思路二实现: