题目描述
鸡尾酒今天学习了原码反码补码的概念,现在他想要设计一个程序,能够自动把原码转换成反码。
原码转换成反码的规则:原码的第一位为符号位,若符号位为 0,则反码与原码相同。若符号位为 1,则符号位不变,将其他位全部取反。
但是写代码太累了,于是鸡尾酒将这个任务交给了你。
输入
输入一行字符串表示一个原码。
输出
输出一行一个字符串表示该原码对应的反码。
样例输入 Copy
【样例1】 00011101 【样例2】 1001
样例输出 Copy
【样例1】 00011101 【样例2】 1110
提示
对于50%的数据,满足符号位为0。
对于100%的数据,满足字符串长度不超过32,且字符串仅由0和1构成。
代码实现:
#pragma GCC optimize(2) #pragma GCC optimize(3) #include <iostream> #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); string s; cin>>s; int len=s.size(); cout<<s[0]; for(int i=1;i<len;i++) { if(s[0]=='0') { cout<<s[i]; } else if(s[0]=='1') { if(s[i]=='1') { cout<<"0"; } else if(s[i]=='0') { cout<<"1"; } } } return 0; }