본문 바로가기
  • Let's study
PS/백준

[C++] 백준 2231: 분해합

by 코딩고수이고파 2020. 12. 23.

1. 가장 작은 생성자를 구해야 하므로 1부터 더해나간다.

2. sum은 생성자와 생성자의 각 자리수 합을 모두 더한 변수, p는 각 자리수의 합을 구하기 위한 변수

3. p가 0이 될때까지 각 자리수의 합을 구하고 sum에 추가

4. sum==n 이면 i를 출력하고 실행을 끝낸다.

5. 만약 4번 조건에 걸리지 않는다면 생성자가 없는 것이므로 0을 출력한다.

#include <iostream>

using namespace std;

int main(void) {
	int n;
	cin >> n;
	int sum;	//전체 합
	int p;	//각 자리수

	for (int i = 1; i < n; i++) {
		sum = i;
		p = i;

		while (p>0) {
			sum += p % 10;
			p /= 10;
		}
		if (sum == n) {
			cout << i;
			return 0;
		}
	}
	cout << 0;
}

'PS > 백준' 카테고리의 다른 글

[C++] 백준 2839번: 설탕 배달  (0) 2020.12.26
[C++] 백준 7568번: 덩치  (0) 2020.12.23
[C++] 백준 2798번: 블랙잭  (0) 2020.12.23
[C++] 백준 1316번: 그룹 단어 체커  (0) 2020.12.08
[C++] 백준 2941번: 크로아티아 알파벳  (0) 2020.12.08

댓글