【华为机试】求最大连续bit数
来源:互联网 发布:mysql5.7 内存优化 编辑:程序博客网 时间:2024/04/29 17:43
题目描述
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入:一个byte型的数字
返回: 对应的二进制数字中1的最大连续数
输入描述:
输入一个byte数字
输出描述:
输出转成二进制之后连续1的个数
示例1
输入
3
输出
2
方法一分析:直接判断最后一位是1还是0,是1个数加1,是0更新最大1个数。每次循环后向右移动一位。
#include <iostream>using namespace std;int main(){int n;while(cin>>n){int k=0,kmax=0;while(n!=0){if(n%2==1) ++k; else if(n%2==0) {kmax=max(k,kmax);k=0;}n=n/2; //n=n>>1;}kmax=max(k,kmax);cout<<kmax<<endl;}return 0;}
方法二分析:每次向右(左)移动1位与原数相与,消掉连续1中的一个,其他位上全为0,重复消掉所有的1。
#include <iostream>using namespace std;int main(){int byte;while(cin>>byte){int k=0;for(k=0;byte!=0;++k)byte=byte&(byte<<1); //byte=byte&(byte>>1); cout<<k<<endl;}return 0;}
阅读全文
0 0
- 华为机试——求最大连续bit数
- 【华为机试】求最大连续bit数
- 【华为OJ】求最大连续bit数
- 华为OJ--求最大连续bit数
- 【华为OJ】求最大连续bit数
- 华为OJ(求最大连续bit数)
- 华为oj 统计大写字母个数&&求最大连续bit数
- 【华为OJ】【084-求最大连续bit数】
- 华为OJ 初级:求最大连续bit数
- 华为OJ——求最大连续bit数
- 华为OJ——求最大连续bit数
- [华为OJ--C++]084-求最大连续bit数
- 华为oj初级 求最大连续bit数
- 华为OJ——求最大连续bit数
- 求最大连续bit数
- 求最大连续bit数
- 求最大连续bit数
- 求最大连续bit数
- Eclipse项目转AndroidStudio报错:Your project contains C++ files but it is not using a supported native...
- 排序算法总结之希尔排序
- java ==的使用
- 2017-8-1 22:29
- 拼多多笔试题
- 【华为机试】求最大连续bit数
- 简单算法题二(哥德巴赫猜想、斐波那契数列)
- 2.1.4—线性表—Search in Rotated Sorted Array II
- 图像融合(Image Fusion)简介
- Markdown(CSDN教程)
- 数据结构之通用树(孩子兄弟表示法)
- 设计模式之禅笔记-观察者模式
- static
- 拿下python软件制作