转化为字符串操作,注意111和233案例
#include<iostream>
#include<string>
using namespace std;
string xyy(string s) {贪心找最小
if(s.size() == 1) return "1";
for(int i = s.size() - 1; i >= 0; i--) {
if(s[i] == '0') s[i] = '1';
else s[i] = '0';
}
return s;
}
int main() {
int t;
cin >> t;
while(t--) {
int x;
cin >> x;
string a = to_string(x);
string s = xyy(a);
int b = stoi(xyy(a));找出来的最小可能为0如111或者233,实际上应该为2和1
if(b == 0) {
if(a[a.size()-1] == '1')用原字符串判断为0的情况,对111或233这种特判一下
printf("%d\n", 2);
else printf("%d\n", 1);
}
else printf("%d\n", b);不为0就直接输出,题目要求输出无前导0
}
return 0;
}