大数求和

Posted zhouqianwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数求和相关的知识,希望对你有一定的参考价值。

题目为输入两个很大的数字,求和后输出,第一个参数为需要求和的数据组数

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000

char* add(char *a,char *b,char *r)
    memset(r, 0, MAX);
    char res[MAX]=0;
    int la=strlen(a);
    int lb=strlen(b);
    int lr=(la>lb)?la:lb;
    for (int i=0; i<lr; i++) 
        if (i<la) 
            if (i<lb) 
                res[i]+=a[la-1-i]+b[lb-i-1]-2*0;
                
            
            else
                res[i]+=a[la-1-i]-0;
            
        
        else
            res[i]+=b[lb-i-1]-0;
        
        res[i+1]+=res[i]/10;
        res[i]=res[i]%10;
    
    if (res[lr]!=0) 
        lr++;
    
    for (int i=0; i<lr; i++) 
        r[lr-i-1] = res[i]+0;
    
    return r;


int main()
    int n;
    char a[MAX], b[MAX], c[MAX];
    scanf("%d", &n);
    for(int i=0; i<n; i++)
    
        scanf("%s %s", a, b);
        printf("Case %d:\n%s + %s = %s\n", i+1, a, b, add(a, b, c));
        if(i<n-1)
        
            printf("\n");
        
    
    return 0;

 

以上是关于大数求和的主要内容,如果未能解决你的问题,请参考以下文章

算法基础:大数求和问题

Stream api reduce方法在尝试对大数求和时返回负值[重复]

[华为机试练习题]2.大数求和

大数相乘求和的模运算

Leetcode67. 二进制求和(简单模拟)

Java之大数相加