求助:高精度减法
  • 板块灌水区
  • 楼主Remelens
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/12/21 23:18
  • 上次更新2023/10/24 06:59:35
查看原帖
求助:高精度减法
755022
Remelens楼主2022/12/21 23:18
#include<bits/stdc++.h>
using namespace std;
#define N 2010
int main(){
    string a,b;
    cin>>a>>b;
    if(b.size()>a.size()){
        string tmp;
        tmp=a;a=b;b=tmp;
        cout<<'-';
    }
    int c[N],lena=a.size(),lenb=b.size();
    for(int i=0;i<lena;i++){
        c[i]=a[lena-1-i]-'0';
        //cout<<a[lena-1-i]<<' ';
    }
    //cout<<endl;
    for(int i=0;i<lenb;i++){
        c[i]-=b[lenb-1-i]-'0';
        //cout<<b[lenb-1-i]<<' ';
    }
    //cout<<endl;
    int lenc;
    for(lenc=0;lenc<lena;lenc++){
        if(c[lenc]<0){
            if(lenc<lena-1){
                c[lenc+1]--;
                c[lenc]+=10;
            }
        }
        //cout<<c[lenc]<<' ';
    }
    bool bb=1;
    for(;lenc>=0;lenc--){
        if(bb&&c[lenc]==0){
            continue;
        }
        bb=0;
        cout<<c[lenc];
    }
    if(bb){
        cout<<0;
    }
    return 0;
}

样例输入:

2083353864775833667095850740068129210979088508696050477021185927829331522171154465553417553984011555011607211344030576
4111686677161584654314306950262518604994579139279665441211126402462491708376414407821717403385998474726823079166534681

样例输出

-2028332812385750987218456210194389394015490630583614964189940474633160186205259942268299849401986919715215867822504105

dalao帮个忙谢谢

2022/12/21 23:18
加载中...