高精度减法

#include<iostream>
#include<string>
using namespace std;
string a,b;
int z[11001],d[11001],c[11001];
int main()
{
    cin>>a>>b;
    int len1=a.length(),len2=b.length();
    if(len1<len2)
    {
        cout<<"-";swap(a,b);swap(len1,len2);
    }
    else
    {
        if(len1==len2)
        {
            if(a<b)
            {
                cout<<"-";swap(a,b);swap(len1,len2);
            }
        }
    }
    for(int i=0;i<len1;i++)
    {
        z[len1-i]=a[i]-'0';
    }
    for(int i=0;i<len2;i++)
    {
        d[len2-i]=b[i]-'0';
    }
    for(int i=1;i<=len1;i++)
    {
        c[i]=z[i]-d[i];
        if(c[i]<0)
        {
            c[i]=c[i]+10;
            c[i+1]-=1;
        }
    }
    while(c[len1]==0&&len1>1) len1--;
    for(int i=len1;i>=1;i--)
    {
        cout<<c[i];
    }
    return 0;
}

版权声明 :

若文中无特殊说明,则本文为原创文章,版权归 幻沙 所有。
所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。

本文链接:

https://crash-logs.cn/wrong/crash-2021-03-31_151-client.txt
1 + 4 =
快来做第一个评论的人吧~