반응형
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)
출력
첫째 줄에 A+B를 출력한다.
풀이
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string a, b;
string ans = "";
int tmp = 0;
cin >> a >> b;
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
while(a.size() < b.size()) a += '0';
while(b.size() < a.size()) b += '0';
for(int i=0; i<a.size(); i++){
int n = (a[i] - '0' + b[i] - '0' + tmp)%10;
ans += to_string(n);
tmp = (a[i] - '0' + b[i] - '0' + tmp)/10;
}
if (tmp != 0) ans += to_string(tmp);
reverse(ans.begin(), ans.end());
cout << ans << endl;
}
두 정수 A, B를 더해 출력
이 문제는 언어 제한이 C언어로 되어 있다
큰 수를 계산하기 위해서는 한 자리씩 더해서 계산해 주어야 한다.
계산하기 위해 A, B는 reverse를 해준다.
한 자리씩 더해주는데 10이 넘어가면, 이를 tmp에 저장해 두었다가 다음 계산에 더해서 계산해 준다.
계산한 값을 ans에 담아둔 다음, 마지막에 reverse를 하여 원래로 돌린다.
반응형
'Develop > 알고리즘' 카테고리의 다른 글
[백준/Python] Silver III #14501 퇴사 (0) | 2023.01.26 |
---|---|
[백준/Python] Silver III #1002 터렛 (0) | 2023.01.25 |
[백준/Python] Bronze V #2754 학점계산 (0) | 2023.01.25 |
[백준/Python] 보드게임컵 C번/Bronze I #27161 크레이지 타임 (0) | 2023.01.24 |
[백준/Python] 보드게임컵 B번/Bronze II #27160 할리갈리 (0) | 2023.01.24 |
Comment