문제

네 자연수 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

+ Recent posts