利用sitseb对象的to_string()方法,将题目转化为求由‘0’、‘1’组成的字符串中,最长连续的‘1’的个数
#include<bitset>
#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
bitset<32> b(n);
string sb(b.to_string());
int ret=0;
auto iter=sb.begin();
while(iter!=sb.end()){
if(*iter=='1'){
int tmp=1;
++iter;
while(iter!=sb.end()&&*iter=='1'){
++tmp;
++iter;
}
ret=max(ret,tmp);
}
else
++iter;
}
cout<<ret<<endl;
}
}