백준 10757 큰 수 A+B C++
2023. 9. 22. 14:44ㆍ알고리즘문제 풀이/백준
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A,B < 10^10000)
출력
첫째 줄에 A+B를 출력한다.
풀이
A, B라는 정수를 받은 후 A + B라고 곧바로 출력하면 틀렸다는 알림이 뜬다!
int, 심지어 long long int 조차 10^10000이라는 범위에 초과하기 때문이다.
이를 위해 A, B를 string으로 입력받아야 한다.
계산할 때에는 각 자리 문자를 숫자로 바꾸고 계산을 한 후 계산된 수를 다시 문자로 바꾼 후 저장한다.
만약 올림이 발생하면 다음 자릿수를 계산할 때 더한다.
예시
string n1 = ‘123456’
string n2 = ‘234567’
n1[5] = ‘6’
n2[5] = ‘7’
‘6’ → 6
‘7’ → 7
6 + 7 = 13
13 / 10 = 1 → 따로 저장해서 다음 자릿수 계산할 때 더하기
13 % 10 = 3 → 일의 자릿수 결과값
3 → ‘3’
res = ‘3’
res = ‘320853’
358,023
#include <iostream>
#include <string>
using namespace std;
int main() {
string n1, n2, res, ans;
cin >> n1 >> n2;
int car = 0;
int onesize = n1.size();
int twosize = n2.size();
while (onesize > 0 || twosize > 0) {
int nn1 = 0;
if (onesize > 0) {
nn1 = n1[--onesize] - '0';
int nn2 = 0;
if (twosize > 0) {
nn2 = n2[--twosize] - '0';
}
int cur = nn1 + nn2 + car;
car = cur / 10;
cur %= 10;
char ccar = cur + '0';
res += ccar;
}
if (car > 0) {
res += car + '0';
}
for (int i = res.length() - 1; i >= 0; i--) {
cout << res[i];
}
}
return 0;
}'알고리즘문제 풀이 > 백준' 카테고리의 다른 글
| 백준 10809 알파벳 찾기 Python (0) | 2023.09.22 |
|---|---|
| 백준 10808 알파벳 개수 Python (0) | 2023.09.22 |
| 백준 10718 We love kriii Python (1) | 2023.09.22 |
| 백준 10430 Python (0) | 2023.09.22 |
| 백준 10250 ACM호텔 C++ (0) | 2023.09.22 |