高精度减法

#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
struct bign{
    int a[10030];
    int len;
    bign(){
        memset(a,0,sizeof(a));
        len=0;
    }
};
bign reve(string a)//对输入的数转化为int型,并进行反转运算 
{
    bign shu;
    shu.len=a.length();
    for(int i=0;i<a.length();i++)
        shu.a[i]=a[a.length()-i-1]-'0';
    return shu;
}
bign print(bign a)//输出运算结果 
{
    for(int i=0;i<a.len;i++)
        cout<<a.a[a.len-i-1];
}
bign jian(bign a,bign b)//默认a的长度大于b 
{
    int arry=0;
    bign c;
    for(int i=0;i<a.len;i++){
        if(a.a[i]<a.a[i]){
            a.a[i]+=10;
            a.a[i+1]-=1;
        }
        c.a[c.len++]=a.a[i]-b.a[i];
    } 
    while(c.len-1>=1&&c.a[c.len-1]==0)
        c.len--;
    return c;
}
int main()
{
    string a,b;
    cin>>a>>b;
    bign a1=reve(a);
    bign a2=reve(b);
    print(jian(a1,a2));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值