首页 > 编程语言 > 详细

高精度加法 C++版本

时间:2020-01-13 19:34:57      阅读:76      评论:0      收藏:0      [点我收藏+]

AcWing 791 高精度加法   https://www.acwing.com/problem/content/description/793/

 

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>

using namespace std;

const int N = 1e5 + 5;

int a[N];
int b[N];

//结果在a数组中
void add(int a[], int b[])
{
    int tmp = 0;
    int len = max(a[0], b[0]);
    int i;
    for(i = 1; i <= len; ++ i)
    {
        int res = a[i] + b[i] + tmp;
        tmp = res / 10;
        a[i] = res % 10;
    }
    if(tmp > 0)
    {
        a[i] = tmp;
        ++ a[0];
    }
}

int main()
{
    string A, B;
    cin >> A >> B;
    a[0] = A.length();
    b[0] = B.length();
    for(int i = 1; i <= a[0]; ++ i)
        a[i] = A[a[0] - i] - 0;
    for(int i = 1; i <= b[0]; ++ i)
        b[i] = B[b[0] - i] - 0;
    add(a, b);
    for(int i = a[0]; i > 0; -- i)
        printf("%d", a[i]);
    return 0;
}

高精度加法 C++版本

原文:https://www.cnblogs.com/Chaosliang/p/12188684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!