문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)
출력
첫째 줄에 A+B를 출력한다.
구현해야할 조건
엄청나게 큰수들은 무엇으로 해결? string으로 해결을 해야한다. 근데 더 할때, 9를 넘기게 되면 올려줘야하는데 이점을 잘 생각해서 풀면 될것 같다!
code
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
string add(string a, string b){
int sum = 0;
string res = "";
while(a.size() || b.size() || sum){
if(a.size()){
sum += a.back() - '0';
a.pop_back();
}
if(b.size()){
sum += b.back() - '0';
b.pop_back();
}
res += (sum % 10) + '0'; // 이 부분을 잘 생각해서 문제를 해결하자!
sum /= 10;
}
reverse(res.begin(), res.end());
return res;
}
int main(){
string a,b;
cin >> a >> b;
cout << add(a,b) << "\n";
return 0;
}
'PS > BaekJoon' 카테고리의 다른 글
[백준/c++] 2665 미로 만들기 (0) | 2022.05.27 |
---|---|
[백준/c++] 17070 파이프 옮기기1 (0) | 2022.04.19 |
[백준/c++] 1062 가르침 (0) | 2022.04.13 |
[백준/c++] 1094 막대기 (0) | 2022.04.13 |
[백준/c++] 14620 꽃길 (0) | 2022.04.11 |