c语言编程
Description题目描述给你一个非负整数n(0≤n≤232-1),求其二进制里面最长连续1数码的长度。比如,7的二进制为111,所以最长连续1数码的长度为3;13的...
Description
题目描述
给你一个非负整数n(0≤n≤232-1),求其二进制里面最长连续1数码的长度。
比如,7的二进制为111,所以最长连续1数码的长度为3;13的二进制为1101,所以最长连续1数码的长度为2.
输入
第一行是一个整数K(K≤20000),表示样例的个数; 以后每行一个整数n。
输出
每行输出一个样例的结果。
样例输入
2
7
13 展开
题目描述
给你一个非负整数n(0≤n≤232-1),求其二进制里面最长连续1数码的长度。
比如,7的二进制为111,所以最长连续1数码的长度为3;13的二进制为1101,所以最长连续1数码的长度为2.
输入
第一行是一个整数K(K≤20000),表示样例的个数; 以后每行一个整数n。
输出
每行输出一个样例的结果。
样例输入
2
7
13 展开
2个回答
展开全部
#include<stdio.h>
int main(void)
{
int K,a[20000];
int i,j,tmp,len;
if(scanf("%d",&K)<1)
{
printf("scanf error\n");
return -1;
}
if(K>20000)
{
printf("K<=20000\n");
return -1;
}
for(i=0;i<K;i++)
if(scanf("%d",a+i)<1)
{
printf("scanf error\n");
return -1;
}
else if(a[i]>231||a[i]<0)
{
printf("0<=n<=231\n");
return -1;
}
for(i=0;i<K;i++)
{
tmp=0;
len=0;
for(j=1;j<=128;j*=2)
if(a[i]&j)
{
tmp++;
}
else
{
if(len<tmp)
{
len=tmp;
}
tmp=0;
}
if(len<tmp)
len=tmp;
printf("len=%d\n",len);
}
return 0;
}
更多追问追答
追问
这个程序运行没结果#include
#include
int Max(int a,int b)
{
if(a<b)
return b;
else
return a;
}
int main()
{
int N,i,j,m;
unsigned int n;
int a[50]={0},count[34]={0},sum=0,h,k;
scanf
追答
???
代码没贴完怎么回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询