2进制转换,除2取余,逆序排列。
#include<stdio.h>
int main(){
int n;
while(~scanf("%d",&n)){
int max=1; //假设当前最大连续为1
for(int seq=0;n>0;n/=2){
if(n%2!=0){
seq++; //连续进行累加
if(seq>max) max=seq; //如果超过就修改当前最大连续数
}
else seq=0; //断连就重置计数
}printf("%d\n",max);
}
}