东方博宜【基础】1268. 高精度加法

问题描述

计算 a+b 的值,a,b 皆为不超过 240 位的非负整数。

输入

两个正整数,每行一个。

输出

一个数,代表两个整数的和。

样例

输入
1
2
输出
3
输入
0
0
输出
0
输入
11111111111111111111
22222222222222222222
输出
33333333333333333333

说明

备注

a,b 两个整数都不含前导 00,即:如果a=100 不可能输入 0100 这样的含有前导 00 的整数。

需要注意的是 a,b 可能为 00。

语言 C++ 

代码:

#include <bits/stdc++.h>

#include<string>

#include<algorithm>

using namespace std;

int main(){
int i,l,l1,a[32767]={},b[32767]={},c[32767],d,t=0;

string s,s1,result;

    cin>>s>>s1;
    
    l=s.size();
   
    l1=s1.size();
    d=max(l,l1);
    for(i=0;i<=l-1;i++){
        
        a[i]=s[l-1-i]-'0';
        
    }
    
    for(i=0;i<=l1-1;i++){
        
        b[i]=s1[l1-1-i]-'0';
        
    }
    
    for(i=0;i<=d-1;i++){
        
        c[i]=(a[i]+b[i]+t)%10;
        
        t=(a[i]+b[i]+t)/10;
        
    }
    
    if (t==1){
        
        cout<<1;
        
    }
    
    for(i=d-1;i>=0;i--){
        
           result += char(c[i]+'0');
           
    }
    
    cout<<result;
    
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值