标签:
题目描述
功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入: 一个byte型的数字
输出: 无
返回: 对应的二进制数字中1的最大连续数
输入描述
输入一个byte数字
输出描述
输出转成二进制之后连续1的个数
输入样例
3
输出样例
2
题目分析
对数字边右移边找连续1的个数的最大值即可。
测试代码
1 #include <stdio.h> 2 3 int main(void) 4 { 5 int num, count = 0, max = 0; 6 7 while (scanf("%d", &num) != EOF) 8 { 9 count = max = 0; 10 while (num) 11 { 12 if (num & 1) 13 { 14 count++; 15 max = (count > max) ? count : max; 16 } 17 else 18 { 19 count = 0; 20 } 21 num >>= 1; 22 } 23 printf("%d\n", max); 24 } 25 return 0; 26 }
标签:
原文地址:http://www.cnblogs.com/maxin/p/5669949.html