华为机试-求最大连续bit数

Posted WenJieWangFlyToWorld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试-求最大连续bit数相关的知识,希望对你有一定的参考价值。

题目描述
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1

输入: 一个byte型的数字

输出: 无

返回: 对应的二进制数字中1的最大连续数
输入描述:
输入一个byte数字
输出描述:
输出转成二进制之后连续1的个数
示例1
输入

3
输出

2

程序实现

  1. import java.util.Scanner;  
  2.   
  3. /** 
  4.  * 功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 
  5.  *  
  6.  * 输入: 一个byte型的数字 
  7.  *  
  8.  * 输出: 无 
  9.  *  
  10.  * 返回: 对应的二进制数字中1的最大连续数 输入描述: 输入一个byte数字 输出描述: 输出转成二进制之后连续1的个数 示例1 输入 
  11.  *  
  12.  * 3 输出 
  13.  *  
  14.  * 2 
  15.  *  
  16.  */  
  17. public class Main {  
  18.     public static void main(String[] args) {  
  19.         @SuppressWarnings("resource")  
  20.         Scanner scanner = new Scanner(System.in);  
  21.         while (scanner.hasNext()) {  
  22.             int num = scanner.nextInt();  
  23.             int result = checkMax(num);  
  24.             System.out.println(result);  
  25.         }  
  26.   
  27.     }  
  28.   
  29.     private static int checkMax(int num) {  
  30.         int count = 0;  
  31.         boolean start = false;  
  32.         int current = 0;  
  33.         int flag = 1;  
  34.         while (flag != 0) {  
  35.   
  36.             if ((num & flag) != 0) {  
  37.                 if (!start) {  
  38.                     start = true;  
  39.                     current = 1;  
  40.                 } else {  
  41.                     current++;  
  42.                 }  
  43.   
  44.             } else {  
  45.                 if (count < current) {  
  46.                     count = current;  
  47.                 }  
  48.                 current = 0;  
  49.                 start = false;  
  50.             }  
  51.             flag = (flag << 1);  
  52.         }  
  53.         return count;  
  54.     }  
  55.   
  56. }  

以上是关于华为机试-求最大连续bit数的主要内容,如果未能解决你的问题,请参考以下文章

华为机试HJ86:求最大连续bit数

2022华为机试真题 C++ 实现翻牌求最大分

华为OD机试题,用 Java 解计算最大乘积问题

华为OD机试题,用 Java 解滑动窗口最大和问题

华为OD机试真题 JS 实现统计友好度最大值2023 Q1 | 100分

华为OD机试 2023最新 新员工座位(C++)