下面的代码把一个整数的二进制表示的最右边的连续的1全部变成0
如果最后一位是0,则原数字保持不变。
如果采用代码中的测试数据,应该输出:
00000000000000000000000001100111 00000000000000000000000001100000
00000000000000000000000000001100 00000000000000000000000000001100
代码:
#include <iostream>
#include <string>
using namespace std;
int main(){
string str;
cin>>str;
int len=str.size();
for(int i=str.size()-1;i>=0;i--){
if(str[i]=='1') str[i]='0';
else if(str[i]=='0'){
break;
}
}
cout<<str;
return 0;
}