提交时间:2025-07-10 14:56:07
运行 ID: 330585
#include<bits/stdc++.h> using namespace std; int a1[1010],a2[1010],c[1010],l1,l2,l; void sub(){ if(s2[0]=='-'){ return; } for(int i=0;i<l;i++){ if(a1[i]<a2[i]){ a1[i+1]--; a1[i]=a1[i]+10; } c[i]=a1[i]-a2[i]; } while(c[l]==0&&l!=0){ l--; } return; } bool check(string s1,string s2){ if(l1>l2) return 0; if(l1<l2) return 1; for(int i=0;i<l;i++){ if(s1[i]<s2[i]) return 1; if(s1[i]>s2[i]) return 0; } return 0; } void sub2(){ for(int i=0;i<l;i++){ c[i]=c[i]+a1[i]+a2[i]; c[i+1]+=c[i]/10; c[i]%=10; } while(c[l]==0&&l!=0){ l--; } for(int i=l;i>=0;i--){ cout<<c[i]; } } int main(){ string s1,s2; cin>>s1>>s2; l1=s1.size(); l2=s2.size(); l=max(l1,l2); if(check(s1,s2)){ cout<<'-'; swap(s1,s2); swap(l1,l2); } for(int i=0;i<l1;i++){ a1[l1-1-i]=s1[i]-'0'; } for(int i=0;i<l2;i++){ a2[l2-1-i]=s2[i]-'0'; } if(s2[0]=='-'){ s2.erase(0,1); sub2(); return 0; } sub(); while(l>=0){ cout<<c[l--]; } return 0; }