#include<bits/stdc++.h> using namespace std; //1.定义两个string s1,s2; string s1,s2; //1.5char f='+',p=0; char f='+'; //2.定义3个数组a[300],b[300]用来存s1,s2; int a[300],b[300],c[320],p=0; int main(){ //3.分别将s1,s2逆序存入数组a,b; cin>>s1>>s2; //s1.size()-1,循环i从i:s1.size()-1~0; //s2.size()-1,循环i从i:s2.size()-1~0; //a[s1.size()-1-i]=s[i]-'0'; //a[s2.size()-1-i]=s[i]-'0'; for(int i=0;i<=s1.size()-1;i++){ a[i]=s1[s1.size()-1-i]-'0'; } for(int i=0;i<=s2.size()-1;i++){ b[i]=s2[s2.size()-1-i]-'0'; } int len=s1.size(); for(int i=0;i<len;i++){ c[i]=a[i]-b[i]; } if(s1.size()<s2.size()||(s1.size()<s2.size())&&s1>s2){ swap(s1,s2); f='-'; } //4.相减 //4.25先判断谁大,用大的减小的 //4.5考虑结果是否是负数 //如果s1<s2,交换s1,s2,f="-"; //4.75循环len次,判断是否要借位,a[i]数组c=数组a-数组b //5.输出 //5.25先判断输出结果是否为负 f='-' cout<<'-'; if(f='-'){ cout<<'-'; } //5.75循环len~0; //相减 for(int i=0;i<len;i++){ if(a[i]<b[i]){ a[i+1]=a[i+1]-1; a[i]=a[i]+10; } c[i]=a[i]-b[i]; } if(f=='-'){ cout<<'-'; } for(int i=len-1;i>=0;i--){ if(c[i]!=0){ p=i; break; } } for(int i=p;i>=0;i--){ cout<<c[i]; } //5.5倒序输出 //6循环p~0 cout<<c[i]; } /************************************************************** Problem: 1269 User: zhangailin Language: C++ Result: Wrong Answer ****************************************************************/