思路
高精度加法
Code
#include <bits/stdc++.h>
using namespace std;
int main(){
int T;
cin>>T;
while(T--){
string s;
cin>>s;
vector<int>A,B,C;
B.push_back(1);
C.push_back(1);
C.push_back(1);
for(int i=s.size()-1;i>=0;i--) A.push_back(s[i]-'0');
vector<int>res,ans;
int t=0;
for(int i=0;i<A.size();i++){
t+=A[i];
if(i<B.size()) t+=B[i];
res.push_back(t%2);
t/=2;
}
if(t) res.push_back(t);
t=0;
for(int i=0;i<A.size();i++){
t+=A[i];
if(i<C.size()) t+=C[i];
ans.push_back(t%2);
t/=2;
}
if(t) ans.push_back(t);
for(int i=res.size()-1;i>=0;i--) cout<<res[i];
puts("");
for(int i=ans.size()-1;i>=0;i--) cout<<ans[i];
puts("");
}
return 0;
}