描述 求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1 本题含有多组样例输入。 输入描述: 输入一个int类型数字 输出描述: 输出转成二进制之后连续1的个数 示例1 输入: 3 5 200 复制 输出: 2 1 2 说明: 3的二进制表示是11,最多有2个连续的1。 5的二进制表示是101,最多只有1个连续的1。
#include#if 0 #define dbg printf #else #define dbg #endif int main(void) { int max = 0; int cnt; int num; int i, k; int out[32] = {0}; k = 0; while(scanf("%d", &num) != EOF) { max = 0; cnt = 0; i = 0; while(i < 32) { if((num&1)==1 && i<31) { cnt++; } else { if((num&1) == 1) { cnt++; } if(max < cnt) { max = cnt; } dbg("(%d):cnt=%dn", __LINE__, cnt); cnt = 0; } num = num>>1; i++; } dbg("(%d):max=%dn", __LINE__, max); out[k] = max; k++; } for(i=0; i



