题目描述
鸡尾酒今天学习了原码反码补码的概念,现在他想要设计一个程序,能够自动把原码转换成反码。 原码转换成反码的规则:原码的第一位为符号位,若符号位为 0,则反码与原码相同。若符号位为 1,则符号位不变,将其他位全部取反。 但是写代码太累了,于是鸡尾酒将这个任务交给了你。
输入描述: 输入一行字符串表示一个原码。
输出描述: 输出一行一个字符串表示该原码对应的反码。
示例1
输入
00011101
输出
00011101
示例2
输入
1001
输出
1110
备注: 对于 50% 的数据,满足符号位为 0。
对于 100% 的数据,满足字符串长度不超过 32,且字符串仅由 0 和 1 构成。
思路
根据题意进行模拟即可
code
#include<bits/stdc++.h>//万能头
using namespace std;
string s;//定义字符串
int main()
{
cin>>s;//string类型只能用cin读入
int len=s.size();//len存储字符串s长度
cout<<s[0];//不管符号位等于1或0,都不变,干脆直接先输出
for(int i=1;i<len;i++)//从一开始(符号位位s[0])
{
if(s[0]=='0') cout<<s[i];//如果符号位等于0,就直接输出
else if(s[i]=='1') printf("0");//否则等于1输出0
else printf("1");//或等于0输出1
}
return 0;//结束
}