반응형
링크
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 |