문제
네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오.
두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다.
입력
첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)
출력
A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력한다.
문제 해결
머리가 복잡해서 식힐겸 오랜만에 아주아주 간단한 문제를 풀어봤다. string을 이용하면 한 줄이면 끝나지만 일부러 돌아왔다. ( string 사용 시 : cout << stol(a + b) + stol(c + d); )
b의 자릿수만큼 a를, d의 자릿수만큼 c를 늘리면 된다.
그런 다음 a에 b를 더한 수와 c에 d를 더한 수를 더해주면 구하는 결과가 나온다.
코드
#include <iostream>
using namespace std;
long long a, b, c, d;
int main() {
cin >> a >> b >> c >> d;
int tmp = b;
while (tmp) {
a *= 10;
tmp /= 10;
}
a += b;
tmp = d;
while (tmp) {
c *= 10;
tmp /= 10;
}
c += d;
cout << a + c;
}
'🎲 BOJ > 🥉' 카테고리의 다른 글
[C++] 백준 25304 : 영수증 (0) | 2023.02.01 |
---|---|
[C++] 백준 13305 : 주유소 (0) | 2022.01.27 |