본문 바로가기
알고리즘/백준문제풀이

백준 10757번 큰 수 문제 A+B

by 푸딩코딩 2022. 11. 29.
728x90
반응형

큰 수 A+B 성공

 
 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 77263 35065 30473 48.621%

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)

출력

첫째 줄에 A+B를 출력한다.

예제 입력 1 복사

9223372036854775807 9223372036854775808

예제 출력 1 복사

18446744073709551615
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
void reverse(char arr[]) {
	int len = strlen(arr); 
	for (int i = 0; i < len/2; i++) {
		char t = arr[len-i-1];
		arr[len - i-1] = arr[i];
		arr[i] = t; //배열을 역순으로 넣어준다. 
	}
}

int main() {

	char a[10001] = { 0 };
	char b[10001] = { 0 };
	char c[10002] = { 0 };
	cin >> a >> b;
	reverse(a);
	reverse(b); //배열 역순 정렬


	int carry = 0; //10이상이라면

	int d = max(strlen(a), strlen(b)); //for문 반복 횟수 결정
	for (int i = 0; i < d; i++) {
		int k = a[i] - '0' + b[i] - '0' + carry; //sum[i]포함해서 더한다
		while (k < 0)
			k += '0';
		if (k > 9 )
			carry = 1;
		else
			carry = 0;
		c[i] = k % 10 +'0';
	}
	if (carry == 1)
		c[d] = '1';
	reverse(c);
	cout << c;

	return 0;


}

헤맸는데 c[i] = k %10 +'0' 에서 -'0'을 하면 오류가 생겼다. 

728x90
반응형