매우 큰 수의 덧셈 처리

semi·2020년 7월 27일
0

etc

목록 보기
8/8

매우 큰 수끼리 더하게 되면(또는 다른 연산을 수행할 때) 숫자 오버플로우가 일어나 원하는 결과값을 얻을 수 없다. 이런 경우, 수를 string으로 변환하여 연산을 진행할 수 있다.

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

string add_num_by_string(string str1, string str2)
{
	long long sum = 0;
	string result;
	while (!str1.empty() || !str2.empty() || sum > 0)
	{
		if (!str1.empty())
		{
			sum += str1.back() - '0';
			str1.pop_back();
		}
		if (!str2.empty())
		{
			sum += str2.back() - '0';
			str2.pop_back();
		}
		result.push_back((sum%10)+'0');
		sum /= 10;
	}
	reverse(result.begin(), result.end());
	return result;
}

0개의 댓글