#include<bits/stdc++.h> using namespace std; // 1. 定义2个string s1 s2;char f=“+” int p=0; string s1,s2; char f='+'; int p=0; // 3.定义3个整型数组a,数组b,数组c int a[300],b[300],c[300]; int main(){ // 2.输入s1 s2; cin>>s1>>s2; if(s1.size()<s2.size()||(s1.size()==s2.size()&&s1<s2)) { swap(s1,s2); f='-'; } for(int i=s1.size()-1;i>=0;i--) a[s1.size()-1-i]=s1[i]-'0'; for(int i=s2.size()-1;i>=0;i--) b[s2.size()-1-i]=s2[i]-'0'; // 5.相减 // 5.1先判断谁大,用大减小 // 5.2考虑结果可能是负数 // 5.3求出int len=s1.size() int len=s1.size(); // 5.4循环len次 for(int i=0;i<len;i++){ if(a[i]<b[i]){ a[i]=a[i]+10; a[i+1]=a[i+1]-1; } c[i]=a[i]-b[i]; } // 6.输出 // 6.1 判断输出结果是否为负数 if(f=='-') cout<<'-'; // 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: duyahan Language: C++ Result: Accepted Time:13 ms Memory:2080 kb ****************************************************************/