【洛谷P1601 A+B Problem(高精)】

题目背景

题目描述

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

输入输出格式

输入格式:

分两行输入a,b<=10^500

输出格式:

输出只有一行,代表A+B的值

输入输出样例

输入样例#1: 
1
1
输出样例#1: 
2
又是高精,运用加法:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<string>
#include<algorithm>
#include<cstdlib>
using namespace std;
int main()
{
    char a1[500],b1[500];
    int a[500],b[500],c[500],lena,lenb,lenc,i,x;
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    scanf("%s",a1);
    scanf("%s",b1);
    lena=strlen(a1);
    lenb=strlen(b1);
    for(i=0;i<=lena-1;i++)
    {
        a[lena-i]=a1[i]-'0';
    }
    for(i=0;i<=lenb-1;i++)
    {
        b[lenb-i]=b1[i]-'0';
    }
    lenc=1;
    x=0;
    while(lenc<=lena||lenc<=lenb)
    {
        c[lenc]=a[lenc]+b[lenc]+x;
        x=c[lenc]/10;
        c[lenc]%=10;
        lenc++;
    }
    c[lenc]=x;
    if(c[lenc]==0)//将多余的0删除
    lenc--;
    for(i=lenc;i>=1;i--)
    cout<<c[i];
    cout<<endl;
    return 0;
}

这里的进位仅有一,相对容易理解。

原文地址:https://www.cnblogs.com/gongcheng456/p/10464329.html