PS/BOJ

[백준 BOJ] 2231 분해합

Jubil 2019. 8. 12. 20:04
반응형

링크

https://www.acmicpc.net/problem/2231

 

풀이

가장 작은 생성자를 출력하는 문제이고 없는 경우에는 0을 출력해야 합니다.

 

N이 1,000,000까지입니다.

i를 0부터 증가시켜주면서 생성자를 찾으면 출력하고 빠져나가면 되고, 못 찾으면 0을 출력하면 됩니다.

 

 

코드

//2231_분해합
#include <cstdio>
using namespace std;

int n;

int main() {
	scanf("%d", &n);

	for (int i = 0; i < n; ++i) {
		int gen = i, tmp = i;		//N을 더하고
		while (tmp) {				//N의 자릿수를 더하고
			gen += tmp % 10;
			tmp /= 10;
		}
		if (gen == n) {				//맞는지 확인하고
			printf("%d\n", i);
			break;
		}
		if (i == n - 1) printf("0\n");	//끝까지 없으면 0 출력
	}

	return 0;
}
반응형

'PS > BOJ' 카테고리의 다른 글

[백준 BOJ] 10988 팰린드롬인지 확인하기  (0) 2019.08.13
[백준 BOJ] 5598 카이사르 암호  (0) 2019.08.12
[백준 BOJ] 1316 그룹 단어 체커  (0) 2019.08.12
[백준 BOJ] 3052 나머지  (0) 2019.08.12
[백준 BOJ] 10757 큰 수 A+B  (0) 2019.08.12