logo AlgoBeat OnlineJudge
登录 注册

[BZOJ 3767] A+B Problem加强版 题解

作者: charly666 作弊者  ·  发布于 2026-07-12 10:34:13  ·  最后修改于 2026-07-12 11:09:51
已通过
审核员:joe_zxq 彩笔 · 2026-07-12 11:09:51

F1:C++ 高精度

小学二年级学的竖式计算总还记得吧。

#include<bits/stdc++.h>
using namespace std;
const int maxn=650;
char sa[maxn],sb[maxn];
int a[maxn],b[maxn],c[maxn];
int main(){
    scanf("%s",sa);
    scanf("%s",sb);
    memset(c,0,sizeof(c));
    int la=strlen(sa);
    int lb=strlen(sb);
    //倒序存储数字
    for(int i=0;i<la;i++)a[la-i-1]=sa[i]-'0';
    for(int i=0;i<lb;i++)b[lb-i-1]=sb[i]-'0';
    int lc=la>lb?la:lb;
    //开始运算
    for(int i=0;i<lc;i++){
        c[i]+=a[i]+b[i];
        if(c[i]>=10){
            c[i+1]=c[i]/10;
            c[i]=c[i]%10;
        }
    }
    //检查进位
    if(c[lc]>0)lc++;
    int cnt=lc-1;
    while(c[cnt]==0)cnt--;
    //倒序输出
    for(int i=cnt;i>=0;i--)printf("%d",c[i]);
    return 0;
}

F2:Python

由于 Python 自带高精度,所以本体可以直接用 A+B Problem 的 Python 代码。

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

暂无评论

登录 后即可评论。