Recent Posts
Notice
No Rules Rules
큰 수 A+B (feat. 백준, 10757번) 본문
728x90
반응형
큰 수 A+B
https://www.acmicpc.net/problem/10757
반응형
// woohyeon.kim
// https://www.acmicpc.net/problem/10757
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void zero_padding(string& str1, string& str2) {
string* bigger = nullptr, *smaller = nullptr;
if (str1.size() > str2.size())
bigger = &str1, smaller = &str2;
else if (str1.size() < str2.size())
bigger = &str2, smaller = &str1;
if (bigger && smaller) {
register int need_padding_size = static_cast<int>(bigger->size() - smaller->size());
while (need_padding_size--)
smaller->push_back('0');
}
}
int main() {
ios::sync_with_stdio(false), cin.tie(NULL);
string str1, str2, ans;
cin >> str1 >> str2;
reverse(str1.begin(), str1.end()), reverse(str2.begin(), str2.end());
zero_padding(str1, str2);
register int v, v1, v2, carry = 0;
for (register int i = 0; i < static_cast<int>(str1.size()); ++i) {
v1 = str1.at(i) - '0';
v2 = str2.at(i) - '0';
v = v1 + v2 + carry;
carry = v / 10, v = v % 10;
ans.push_back(v + '0');
}
if (carry != 0)
ans.push_back(carry + '0');
reverse(ans.begin(), ans.end());
cout << ans << endl;
return 0;
}
// *&)*@*
- 입력받은 값 두개의 길이를 맞춰줍니다. (0을 붙여서요.)
- 각 자릿수마다 덧셈을 하고 만약 10보다 큰 값이 있다면 다음 자릿수에 그 값을 함께 더해줍니다.
- 각 자릿수에 대한 덧셈이 다 끝나고 가장 마지막의 덧셈이 10보다 큰 값이었다면 (carry가 0이 아니라면) 그 값을 제일 앞에 붙여줍니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
소수 (feat. 백준, 2581번) (0) | 2022.07.31 |
---|---|
소수 찾기 (feat. 백준, 1978번) (0) | 2022.07.31 |
부녀회장이 될테야 (feat. 백준, 2775번) (0) | 2022.07.31 |
ACM 호텔 (feat. 백준, 10250번) (0) | 2022.07.30 |
달팽이는 올라가고 싶다 (feat. 백준, 2869번) (0) | 2022.07.30 |
Comments