题解
【基础】高精度减法2
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; string s1,s2; int a[245],b[245],c[245],p; int main () { char f='+'; cin>>s1>>s2; if(s1.size()<s2.size()||s1.size()==s2.size()&&s2>s1){ swap(s1,s2); f='-'; } 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'; } int len=s1.size(); 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<<f; } 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]; } return 0; }
- 1