#include<bits/stdc++.h> using namespace std; //1.定义两个string s1,s2; string s1,s2; char f='+'; int p=0; //3.定义三个整型数组a[300]b[300]c[300] int a[300],b[300],c[300]; //2.输入 s1 s2 int main(){ cin>>s1>>s2; if(s1.size()<s2.size()||(s1.size()==s2.size()&&s1<s2)){ swap(s1,s2); f='-'; } //4.分别将s1 s2逆序存入数组a 数组b for(int i=0;i<s1.size();i++){ a[s1.size()-1-i]=s1[i]-'0'; } for(int i=0;i<s2.size();i++){ b[s2.size()-1-i]=s2[i]-'0'; } //5. 相减 //5.1先判断谁大,用大的减小的 //5.2考虑结果可能是负数 //如果s1<s2{ // 交换s1s2 //f=- //} //5.3求出len int len=s1.size(); for(int i=0;i<len;i++){//5.4循环len次 if(a[i]<b[i]){//5.4.1判断要不要借位 a[i]=a[i]+10; a[i+1]=a[i+1]-1; } //5.4.2 数组c=数组a-数组b c[i]=a[i]-b[i]; } //6.输出 //6.1 先判断输出结果是否为负 if(f=='-')cout<<"-"; //6.2 倒序输出 //6.2.1循环len----0 for(int i=len-1;i>=0;i--){ if(c[i]!=0) { p=i; break; } } //6.2.2 循环i=p--0 for(int i=p;i>=0;i--){ cout<<c[i]; } return 0; } /************************************************************** Problem: 1269 User: wangsenlin Language: C++ Result: Accepted Time:13 ms Memory:2080 kb ****************************************************************/