1151: 大整数加法

1151: 大整数加法

时间限制: 1 Sec   内存限制: 128 MB
提交: 1795   解决: 759
[ 提交][ 状态][ 讨论版][命题人: admin]

题目描述

比利经常会碰到超大整数的加法运算,而普通的计算器上无法进行。因此他想你帮他写一个程序来计算结果。

输入

输入数据有多组。首先输入一个整数T,表示有T组输入。

每组输入两个大整数,并用空格隔开。每个整数最多1000位。没有负数输入。

输出

对于每组输入,输出两个整数的和,单独占一行。

样例输入

2
1 2
112233445566778899 998877665544332211

样例输出

3
1111111111111111110

提示

来源

#include<stdio.h>
#include<string.h>

char m[2022],n[2022];
int i[2022],j[2022],k[2022];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s%s",m,n);
        memset(i,0,sizeof(i));
        memset(j,0,sizeof(j));
        memset(k,0,sizeof(k));
        int a=strlen(m);
        int a1;
        for(a1=0; m[a1]; a1++)
            i[a1]=m[a-a1-1]-'0';

        int b=strlen(n);
        int b1;
        for(b1=0; n[b1]; b1++)
            j[b1]=n[b-b1-1]-'0';

        int c;
        for(c=0; c<=2000; c++)
            k[c]=i[c]+j[c];
        for(c=0; c<2000; c++)
            if(k[c]>9)
                k[c+1]+=1,  k[c]=k[c]%10;
        for(c=2000; c>=0; c--)
            if(k[c]!=0)
                break;
        if(c==-1)
            printf("0\n");
        else
        {
            for(c=c; c>=0; c--)
                printf("%d",k[c]);
            printf("\n");
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/zzuli_acmer/article/details/79704506