A + B 문제 II 다수 (겨울 훈련)의 추가 - 정밀는에게 아날로그

题目要求
나는 당신을 위해 매우 간단한 문제가 있습니다. 주어 두 정수 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;
}
게시 38 개 원래 기사 · 원의 찬양 (27) · 전망 3165

추천

출처blog.csdn.net/qq_45891413/article/details/105302822