60pts 求调

P2142 高精度减法

@[XuYu0317](/user/1120928) 可能答案为 **负数**
by IceKylin @ 2024-02-23 08:45:12


```cpp #include<iostream> #include<string> using namespace std; long long a[100000],b[100000],c[100000],lena,lenb; string n1,n2; int main() { cin>>n1>>n2; lena=n1.length(); lenb=n2.length(); if(lena<lenb||(lena==lenb&&n1<n2) ) { swap(n1,n2); swap(lena,lenb); cout<<"-"; } for(int i=0;i<=lena-1;i++) { a[i]=n1[lena-1-i]-'0'; } for(int i=0;i<=lenb-1;i++) { b[i]=n2[lenb-1-i]-'0'; } for(int i=0;i<=lena-1;i++) { if(a[i]<b[i]) { a[i+1]--; a[i]+=10; } c[i]=a[i]-b[i]; } while(c[lena-1]==0&&lena>1) { lena--; } for(int i=lena-1;i>=0;i--) { cout<<c[i]; } return 0; } ```
by zky2023 @ 2024-02-23 09:13:10


结果可能为负数,先判断大小,然后大的在前小的在后并输出负号
by zky2023 @ 2024-02-23 09:15:20


建议AcWing
by Nk96321 @ 2024-02-23 09:39:27


|