高精度减法

#include<bits/stdc++.h>

using namespace std;

int main(){
    string a,b;
    cin >> a >> b;
    if(a.length() < b.length() || a.length() == b.length() && a < b){
        swap(a,b);
        printf("-");
    }
    reverse(a.begin(),a.end()),reverse(b.begin(),b.end());
    for(int i=0; i<b.length(); i++){
        a[i] = a[i] - b[i] + '0';
        if(a[i] < '0'){
            a[i+1]--;
            a[i] += 10; 
        }
    }
    int len = a.length();
    for(int i=len - 1; i>0; i--){
        if(a[i] == '0'){
            len--;
        }else{
            break;
        }
    } 
    for(int i=len - 1; i>=0; i--){
        printf("%c",a[i]); 
    }
    return 0;
}
原文地址:https://www.cnblogs.com/zhangqiling/p/12439049.html