如何判断某个二进制数如是否存在两位1中间有包含0的情况?
来源:互联网 发布:淘宝店刷王者贵族骗局 编辑:程序博客网 时间:2024/05/01 07:22
https://www.zhihu.com/question/52999719
知乎上的一道题目
如何判断某个二进制数如是否存在两位1中间有包含0的情况?
请尽量用基础数学解答,遍历一类的就不用说了,无解的话也请说明下。
例如:111100或100000或000000都是1中间没有0;101010或100111这都属于除1之外有多个0相连的情况。
例如:111100或100000或000000都是1中间没有0;101010或100111这都属于除1之外有多个0相连的情况。
回答中使用多次取反来确定连续1和连续0 的位置 再以两次取反结果相乘判断是否符合条件
不过使用状态机来解决也不失为一个办法
#include <iostream>enum STATE { ORI, ONE, ONEZERO, ONEZEROONE};bool check(int M) { STATE s = ORI; while (M != 0) { char ch = M & 0x1 ? '1' : '0'; switch (s) { case ORI: if (ch == '1') s = ONE; break; case ONE: if (ch == '0') s = ONEZERO; break; case ONEZERO: if (ch == '1') return false; } M = M >> 1; } if (s == ONE || s == ONEZERO) return true; return false;}int main(){ std::cout << check(184) << std::endl; std::cout << check(120) << std::endl; return 0;}
0 0
- 如何判断某个二进制数如是否存在两位1中间有包含0的情况?
- 如何判断一个数的二进制有多少个1
- 如何判断一个数的二进制有多少个1
- 计算某个数的二进制中有几个1
- 如何判断一个整数位的二进制中有多少个1
- Java 实现判断时间是否在某个区间内(如是否在23点到凌晨4点之间)
- 判断一个整数的二进制数有多少个1
- 判断一个数的二进制有多少个1
- 判断两矩形是否交叉(包括包含的情况)
- 判断两矩形是否交叉(包括包含的情况)
- 判断两矩形是否交叉(包括包含的情况)
- 判断两矩形是否交叉(包括包含的情况)
- 如何判断一个数二进制中“1”的个数
- 问题:十进制整数,计算对应的二进制数包含多少个1,用位操作。
- 十进制整数,计算对应的二进制数包含多少个1,用位操作
- n&(n-1)的运用——二进制数中1的个数、判断它是否是2的方幂
- 如何判断某个文件里是否包含指定的字符?
- 十进制数转二进制形式并判断它是否为2的n次幂(Java实现)
- 自定义View实现RoundProgressBar
- “香港法院庭审制度”研讨会在法学院举行
- PowerMock介绍
- 深度学习:Image Object Detection方法
- ubuntu 下python中安装xgboost包
- 如何判断某个二进制数如是否存在两位1中间有包含0的情况?
- (转载)机器学习知识点(十一)隐马尔可夫模型
- XmlSerializer 类
- string 与char* char[]区别及转化
- 用树莓派计算模块搭建的工业单板计算机(转)
- 归并排序
- 【IOS学习】iPhone屏幕尺寸、分辨率及适配
- String类不可变性的好处
- C++中如何对输出几位小数进行控制(setprecision)