HPUOJ1163: 大数A + B [字符串](水)

来源:互联网 发布:大数据培训骗局 编辑:程序博客网 时间:2024/06/07 11:24

1163: 大数A + B [字符串]

时间限制: 1 Sec  内存限制: 128 MB
提交: 31  解决: 8
[提交][状态][讨论版]

题目描述

给定两个整数A
B,让你求出A+B
的值。

输入

第一行输入一个整数T

,代表有T

组测试数据。

每组数据占两行,第一行输入一个整数A

,第二行输入一个整数B

注:1<=T<=30,1<=A,B<=10666666

输出

对每组数据,输出A+B
的最后结果。 

样例输入

1233333333333333333333333333333333333333666666666666666666666666666666666666666

样例输出

899999999999999999999999999999999999999
#include<stdio.h>       //AC代码#include<string.h>int max(int a,int b){if(a>b)return a;return b;}char a[666666 +10];char b[666666 +10];int A[666666 +10];char B[666666 +10];int main(){int T;int i,la,lb,laa,lbb;scanf("%d",&T);while(T--){scanf("%s%s",a,b);memset(A,0,sizeof(A));memset(B,0,sizeof(B));la=strlen(a);lb=strlen(b);laa=0;   for(i=la-1;i>=0;i--)A[laa++]=a[i]-'0';lbb=0;for(i=lb-1;i>=0;i--)B[lbb++]=b[i]-'0';for(i=0;i<max(laa,lbb)+1;i++){A[i]+=B[i];if(A[i]>=10){A[i]-=10;A[i+1]++;}}int flat=0;for(i=max(laa,lbb)+1;i>=0;i--){if( flat)printf("%d", A[i]); else if( A[i] ) { printf("%d", A[i]); flat=1; }}printf("\n");}return 0;}


0 0
原创粉丝点击