华为OJ平台——求最大连续bit数
题目描述:
求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入:
一个byte型的数字
输出:
对应的二进制数字中1的最大连续数
思路:
通过移位运算可以一次判断每一位的0、1值,然后通过统计可以得到结果
import java.util.Scanner; //byte 的范围是-128~127
public class MaxContinueOne { public static void main(String[] args) {
//读入byte类型的整数
Scanner cin = new Scanner(System.in) ;
byte num = cin.nextByte() ;
cin.close() ; int max = 0 ; //记录最大的连续bit位数
int count = 0 ; //临时记录当前的连续bit位数
int temp = 1 ;
boolean lastFlag = false ; //记录上一个比特位为0(false)还是1
//byte类型共8位,所以执行8次就可以了
for(int i = 0 ; i < 8 ; i++){
//temp & num 不为0表示当前位为1
if((temp & num) != 0){
if(lastFlag){
count++ ;
}else{
count = 1 ;
lastFlag = true ;
}
//将最大的连续bit位数记为max
max = max > count ? max : count ;
}else{
lastFlag = false ;
}
//将temp左移一位,进入下一位的比较准备
temp = temp << 1 ;
} System.out.println(max) ; } }
华为OJ平台——求最大连续bit数的更多相关文章
- java笔试之求最大连续bit数
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 输入: 一个byte型的数字 输出: 无 返回: 对应的二进制数字中1 ...
- 华为OJ平台——字符串分隔
题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输 ...
- 华为OJ平台——矩阵乘法
题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 输入: 1.第一个矩阵的行数 2.第一个矩阵的列数(也是第二个矩阵的行数) 3.第二个矩阵 ...
- 华为OJ平台——输出最小的k个数
输入n个整数,输出其中最小的k个. 详细描述: 接口说明 原型: bool GetMinK(unsignedint uiInputNum, int *pInputArray, unsignedint ...
- 华为OJ平台——完美数
import java.util.Scanner; /** * * 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数. * 它所有的真因子(即除了自身以外的约数)的和(即 ...
- 【华为OJ平台练习题】求最大公共子串的个数和元素
1.原题是求出最大公共子串的个数就可以 原理:利用二维矩阵排列的方式.将俩字符串进行比較 #include <iostream> #include <vector> using ...
- 求最大连续bit数
描述 功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 输入: 一个byte型的数字 输出: 无 返回: 对应的二进制数 ...
- 华为OJ平台——杨辉三角的变形
import java.util.Scanner; /** * 杨辉三角的变形 *第一行为1,后面每一行的一个数是其左上角到右上角的数的和,没有的记为0 * 1 * 1 1 1 * 1 2 3 2 1 ...
- 华为oj之求int型正整数在内存中存储时1的个数
题目: 求int型正整数在内存中存储时1的个数 热度指数:4427 时间限制:1秒 空间限制:32768K 题目描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: ...
随机推荐
- [rootfs]Yaffs2
1. busybox: sudo apt-get install busybox(v1.21.1) 2. mkyaffs2image: http://www.aleph1.co.uk/gitweb/? ...
- oracle学习笔记(一)配置监听
服务器端: 监听器 lsnrctl 启动监听 lsnrctl start [LISTENER] 查看监听 lsnrctl status 或者 lsnrctl service C:\Docu ...
- activiti自定义流程之Spring整合activiti-modeler5.16实例(二):创建流程模型
注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建 1.maven导包,这里就没有什么多的好说了,直接代码: <depe ...
- TortoiseSVN使用详细步骤
1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么要用SVN? 4 怎么样在Windows下面建立SVN Repository? 5 建立一个Working目录 6 ...
- 黄聪:wordpress如何使用get_avatar禁止调用gravatar头像,替换为自定义头像
add_filter( 'get_avatar' , 'my_custom_avatar' , 1 , 5 ); function my_custom_avatar( $avatar, $id_or_ ...
- Java面试必备知识
JAVA面试必备知识 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可 ...
- __VA_ARGS__用法(转)
自定义调试信息的输出 调试信息的输出方法有很多种, 例如直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一 ...
- ERP_Oracle Erp发展趋势基于SOA电子商务方案
2014-01-12 Created By BaoXinjian
- Play framework(二)
Play 2.0 的完整演示过程记录 http://www.oschina.net/translate/playframework-20-live-coding-script todolist代码
- Bitbucket使用方法
一.软件及SSH keys: 由于我的Bitbucket账号的邮箱及用户名与Github相同,所以SSH Public Keys可以用Github的,登录Bitbucket,悬浮在用户名boliqua ...