查找一个int数的二进制中连续最长的1开始出现的索引
来源:互联网 发布:古驰精仿皮带淘宝 编辑:程序博客网 时间:2024/06/05 00:39
题目:插入找一个int数的二进制中连续最长的1开始出现的索引
例如:1457243 对应的二进制101100011110001011011
对应输出是10
分析:变量count记录连续1出现最大值长度,curcount记录当前最长值
对输入n,用0x01这个数每次左移一位和n相与,判断是不是非0,如果非零则curcount++,如果是0,则curcount和count比较,若curcount>count则更新count。
注意每次更新count的时候也要更新index,记录当前count长的串的索引。
#include<iostream>
using namespace std;
int fun(int n)
{
int a = 0x01;
int count = 0;
int curcount = 0;
int i = 0;
int index = 0;
while (a)
{
if ((a&n) != 0)
{
curcount++;
}
else
{
if (count<curcount)
{
count = curcount;
index = i - count;
curcount = 0;
}
}
i++;
a=a<<1;
}
return index;
}
int _tmain(int argc, _TCHAR* argv[])
{
/*int a = 0xffff1111;
short *p = (short*)&a;
printf("%08x",*p);*/
cout<<fun(1457243);
return 0;
}
阅读全文
0 0
- 查找一个int数的二进制中连续最长的1开始出现的索引
- 2015上机一 输出字符串中连续出现最长的数字串及其开始的下标
- 求无符号数二进制中1的个数&&求一个字符串中最长的连续子串
- 查找字符串中连续的最长的数字串
- 一个unsign int 数中二进制1的个数
- 求一个int型二进制数中1的个数
- 查找一个数的二进制形式中‘1’的个数
- 2015输入一个字符串以#结尾,则输出此字符串中连续出现最长的数字串及其开始的下标;
- 查找一个数组中不连续0出现的个数
- 题目——求一个二进制串中连续的1或连续的0出现的最大次数
- 全国软件设计大赛--求出一个二进制串中连续的1或连续的0出现的最大次数
- 输入一个数计算其二进制中连续1的个数
- 统计一个二进制字符串连续出现0或者连续出现1的最大次数
- 求一个unsigned int 数的二进制表示中有多少个1?
- 一个unsigned int 数的二进制表示中有多少个1
- 求一个unsigned int 数的二进制表示中有多少个1?
- int型整数二进制数中1的个数
- 求一个数二进制1的中
- 面试遇到的机器学习问题
- VI编辑器之多文件多屏操作
- oracle基础
- 面试中经常遇到的问题,及建议回答方式
- shiro使用流程及原理
- 查找一个int数的二进制中连续最长的1开始出现的索引
- 大数据预科班18
- 八种排序算法java实现(1)----冒泡排序
- 初始化窗体
- SQL Server 2005 开启数据库远程连接的方法
- java 循环 条件语句
- 写一个自己的springMVC?
- [BZOJ2246][SDOI2011]迷宫探险(状压&概率DP)
- 正则表达式