반응형

https://www.acmicpc.net/problem/10757

 

10757번: 큰 수 A+B

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

www.acmicpc.net

https://www.acmicpc.net/problem/15353

 

15353번: 큰 수 A+B (2)

C++17, C11, C99, C++98, C++11, C++14, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang)

www.acmicpc.net

두 개의 큰 수를 더하는 문제였습니다.

범위가 커서 문자열로 받아서 각 자릿수별로 덧셈을 진행해주었습니다.

10757과 15353번 모두 동일한 소스코드로 제출하였습니다.

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int val, carry = 0;
string a, b, c;
void f(string &s, int &len) {
	for (; len >= 0; len--) {
		val = s[len] - '0' + carry;
		c.push_back(val % 10 + '0');
		carry = val / 10;
	}
}
int main() {
	cin >> a >> b;
	int alen = a.length() - 1, blen = b.length() - 1;
	for (; alen >= 0 && blen >= 0; alen--, blen--) {
		val = a[alen] - '0' + b[blen] - '0' + carry;
		c.push_back(val % 10 + '0');
		carry = val / 10;
	}
	f(a, alen); // a또는 b의 남은 자릿수에 대해 덧셈
	f(b, blen);
	if (carry == 1) c += '1';
	reverse(c.begin(), c.end());
	cout << c;
}
반응형

'Algorithm' 카테고리의 다른 글

백준 17135 : 캐슬 디펜스  (0) 2021.11.11
백준 14891 : 톱니바퀴  (0) 2021.11.11
백준 17471 : 게리멘더링  (0) 2021.11.11
백준 15654 : N과 M (5)  (0) 2021.11.11
백준 2437 : 저울  (0) 2021.11.11

+ Recent posts