【模板】高精加

我又来水了

  • 基本介绍
  • 模板题目
  • 代码实现

基本介绍

面对很大的数据进行加法 longlong会爆 我们用数组存储每一位来模拟加法

模板题目

题目描述
高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]

输入输出格式
输入格式:
分两行输入a,b<=10^500
输出格式:
输出只有一行,代表A+B的值

输入输出样例
输入样例:
1
1
输出样例:
2

代码实现



#include<iostream>
#include<cstdio>
#include<cctype>
#include<cstring>
#include<string>

    using namespace std;
    #define in = read();
    typedef long long ll;
    typedef unsigned int ui;
    const ll size = 10000 + 100;

        string x , y;
        int lena , lenb , h , num;
        int a[size] , b[size];

inline ll read(){
        ll num = 0 , f = 1;    char ch = getchar();

        while(!isdigit(ch)){
                if(ch == '-')   f = -1;
                ch = getchar();
        }
        while(isdigit(ch)){
                num = num*10 + ch - '0';
                ch = getchar();
        }

        return num*f;
}

int main(){
        cin>>x>>y;
        lena = x.size();    lenb = y.size();
        for(register int i=0;i<lena;i++)
                a[i] = x[lena - i - 1] - '0';
        for(register int i=0;i<lenb;i++)
                b[i] = y[lenb - i - 1] - '0';

        while(h <= lena || h <= lenb){
                b[h] += a[h] + num;
                num = b[h]/10;
                b[h] %= 10;
                h ++;
        }
        b[h] = num;
        while(!b[h] && h)   h --;

        for(register int i=h;i>=0;i--)
                printf("%d" , b[i]);
}


//COYG
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值