题目要求
나는 당신을 위해 매우 간단한 문제가 있습니다. 주어 두 정수 A 및 B는, 작업의 합계 (A)의 + B. 계산하는
입력
은 입력의 첫 줄이 테스트 경우의 수를 의미하는 정수 T를 (1 <= T <= 20)를 포함한다. 그런 다음 T 라인은 각 라인이 정수는 32 비트 정수를 사용하여이를 처리하지해야 함을 의미가 매우 큰 것을 두 양의 정수, A와 B주의 사항으로 구성하십시오. 각 정수의 길이가 1000 초과하지 않습니다 가정 할 수
출력
은 출력이 개 선해야, 각 테스트 케이스에 들어 있습니다. 첫 번째 라인은 "사건 번호"이다 # 테스트 케이스의 수를 의미한다. 두 번째 행은 수학 식 "A + B = 합"합이 어떤 공간 방정식이되는 int된다 + B. 노트의 결과를 의미한다. 출력이 테스트 케이스 사이에 빈 라인.
샘플 입력
2
1 2
112233445566778899 998877665544332211
샘플 출력의
경우 1 :
1 + 2 = 3
사례 2 :
112,233,445,566,778,899 998,877,665,544,332,211 + = 1111111111111111110
너무 큰 데이터 첨가 문자열을 가져 오기 위하여 긴 긴에 저장 될 수 있기 때문에 다수의 각 비트 열 -'0 '디지털 위치를 얻었다. 두 개의 디지털 입력 및 디지털 첨가 각각에 대응하는 어레이에 두 개의 저장 어레이를 사용하여, 또한 반송 조건이 10보다 큰 경우를 결정한다.
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<math.h>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n,t;
cin>>n;
for(t=1;t<=n;t++)
{
char a[1111],b[1111];
int c[1111];
cin>>a>>b;
int i,j,k=0;
int m=0;
for(i=strlen(a)-1,j=strlen(b)-1;i>=0&&j>=0;i--,j--)
{
int p=(a[i]-'0')+(b[j]-'0')+m;
m=p/10;
c[k++]=p%10;
}
while(i>=0)
{
int p=(a[i]-'0')+m;
m=p/10;
c[k++]=p%10;
i--;
}
while(j>=0)
{
int p=(b[j]-'0')+m;
m=p/10;
c[k++]=p%10;
j--;
}
if(m)
{
c[k++]=m;
}
printf("Case %d:\n",t);
cout<<a<<' '<<'+'<<' '<<b<<' '<<'='<<' ';
for(int i=k-1;i>=0;i--)
cout<<c[i];
printf("\n");
if(t!=n)printf("\n");
}
return 0;
}