大数相加 Big Num

代码:

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
    int n,x=1;
    scanf("%d",&n);
    while(n--)
    {
        char a[1000],b[1000];
        int i,a1,b1,r,s[3][1000];
        scanf("%s%s",a,b);
        a1=strlen(a);
        b1=strlen(b);
        memset(s,0,sizeof(s));
        r=0;
        for(i=a1-1; i>=0; i--)
        {
            s[0][r++]=a[i]-'0';
        }
        r=0;
        for(i=b1-1; i>=0; i--)
        {
            s[1][r++]=b[i]-'0';
        }
        int m;
        m=max(a1,b1);
        for(i=0; i<m; i++)
        {
            s[2][i]+=s[0][i]+s[1][i];
            if(s[2][i]>=10)
            {
                s[2][i+1]+=1;
                s[2][i]=s[2][i]-10;
            }
        }
        printf("Case %d: ",x++);
        printf("%s + %s = ",a,b);
        if(s[2][m]!=0)
            printf("%d",s[2][m]);
        for(i=m-1; i>=0; i--)
            printf("%d",s[2][i]);
        printf(" ");
        if(n!=0)
            printf(" ");
    }
    return 0;
}

//有一点,为什么我在定义s二维数组的时候,单独定义的时候老是编译不了。。。

原文地址:https://www.cnblogs.com/programming123/p/10692387.html