代码:
#include<iostream>
#include<cmath>
typedef unsigned long long ull;
using namespace std;
int n,cnt,m;
int n_ten(string s){
int um=0;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9') um+=pow(n,s.size()-i-1)*(s[i]-'0');
else um+=pow(16,s.size()-i-1)*(s[i]-'A'+10);
// cout<<pow(16,s.size()-i-1)*(s[i]-'A'+10)<<endl;
}
return um;
}
string ten_two(int s){
string c="",a="";
int x=0;
while(s){
a[x]=s%2,s/=2;
a[x]+='0';
x++;
}
for(int i=x-1;i>=0;i--){
c+=a[i];
}
int l=c.size();
if(l==1) c="000000000000"+c;
if(l==2) c="00000000000"+c;
if(l==3) c="0000000000"+c;
if(l==4) c="000000000"+c;
if(l==5) c="00000000"+c;
if(l==6) c="0000000"+c;
if(l==7) c="000000"+c;
if(l==8) c="00000"+c;
if(l==9) c="0000"+c;
if(l==10) c="000"+c;
if(l==11) c="00"+c;
if(l==12) c="0"+c;
return c;
}
int main(){
// cout<<ten_two(10)<<endl;
// cout<<n_ten("AAA")<<endl;
cin>>n;
n++;
while(n--){
if(n==1) break;
string a,b;
char s;
cin>>a>>s>>b;
// cout<<a<<endl;
if(s=='+'){
int aa=n_ten(a),bb=n_ten(b);
// cout<<aa<<' '<<bb<<endl;
int sum=aa+bb;
cout<<ten_two(aa)<<" + "<<ten_two(bb) <<" = "<<sum<<endl;
}else{
int aa=n_ten(a),bb=n_ten(b);
int sum=aa-bb;
cout<<ten_two(aa)<<" - "<<ten_two(bb) <<" = "<<sum<<endl;
}
if(n==1) break;
}
string a,b;
char s;
cin>>a>>s>>b;
// cout<<a<<endl;
if(s=='+'){
int aa=n_ten(a),bb=n_ten(b);
// cout<<aa<<' '<<bb<<endl;
int sum=aa+bb;
cout<<ten_two(aa)<<" + "<<ten_two(bb) <<" = "<<sum;
}else{
int aa=n_ten(a),bb=n_ten(b);
int sum=aa-bb;
cout<<ten_two(aa)<<" - "<<ten_two(bb) <<" = "<<sum;
}
}