洛谷 P1601 A+B Problem(高精)

题目描述

高精度加法,相当于 a+b problem,不用考虑负数

输入格式

分两行输入。a,b≤10^{500}

输出格式

输出只有一行,代表a+b 的值。

输入输出样例

输入 #1

1
1

输出 #1

2

输入 #2

1001
9099

输出 #2

10100

说明/提示

20% 的测试数据,0≤a,b≤10^{9}

40% 的测试数据,0≤a,b≤10^{18}

AC代码

先看C++代码:

#include<bits/stdc++.h>

using namespace std;

char a[505],b[505];
int x[505],y[505],z[1005];
int lena,lenb,lenc=1;

int main()
{
    cin>>a>>b;
    lena = strlen(a);
    lenb = strlen(b);
    int p = 0;
    for(int i = 1;i <= lena;i++)    //倒序存入数组
    {
        x[i] = a[lena-i]-'0';
    }
    for(int i = 1;i <= lenb;i++)    //倒序存入数组
    {
        y[i] = b[lenb-i]-'0';
    }
    while(lenc <= lena || lenc <= lenb)
    {
        z[lenc] = x[lenc]+y[lenc]+p;    //每一位相加
        p = z[lenc]/10;     //计算进位
        z[lenc] = z[lenc]%10;
        lenc++;     //位数加1
    }
    z[lenc] = p;
    while(z[lenc] == 0 && lenc > 1)     //删除前导0
    {
        lenc--;
    }
    for(int i = lenc;i >= 1;i--)        //输出
    {
        cout<<z[i];
    }
    cout<<endl;
    return 0;
}

 再来看Python代码:

a=input()
b=input()
a=int(a)
b=int(b)
print(a+b)

测试点信息

C++:

 

Python: 

 

显而易见, C++ 比 Python  更省时间.

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值