高精度加法 洛谷 P1601 A+B Problem(高精)

高精度加法 洛谷 P1601 A+B Problem(高精)

平常一般不用高精度,结果连高精度加法都不会。。

现在开始学习一下,毕竟是极其基础的东西。。。

洛谷 P1601 A+B Problem(高精)

题目背景

题目描述

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

输入输出格式

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

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

输入输出样例

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

代码如下:

#include
#include
#include
#include
using namespace std;
char ca[501],cb[501];
int a[501],b[501],c[510];
int lena,lenb,lenc;
void super_addition(int lena,int lenb)
{
    lenc=max(lena,lenb);
    int temp=0;
    for (int i=0;iif (a[i]+b[i]+temp>9)
        {
            c[i]=(a[i]+b[i]+temp)%10;
            temp=(a[i]+b[i]+temp)/10;
        }
        else
        {
            c[i]=a[i]+b[i]+temp;
            temp=0;
        }
    }
    if (temp!=0)
    {
        c[lenc]=temp;
        lenc++;
    }
    return;
}
int main()
{
    memset(a,0,sizeof(a));
    cin>>ca;
    lena=strlen(ca);
    for (int i=0;i1-i]-'0';
    }
    memset(b,0,sizeof(b));
    cin>>cb;
    lenb=strlen(cb);
    for (int i=0;i1-i]-'0';
    }

    memset(c,0,sizeof(c));

    lenc=0;
    super_addition(lena,lenb);

    for (int i=lenc-1;i>=0;i--)
    {
        printf("%d",c[i]);
    }
    printf("\n");
    return 0;
}

你可能感兴趣的:(C++,高精度,模板,C++,高精度,加法)