Algorithm
[백준-2231번/Java] 분해합
1984
2022. 11. 20. 23:58
https://www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
* 10 나머지 연산 / 10 나누기 연산을 이용해서 자릿수를 더했다.
* 가장 작은 생성자를 구해야 하므로, 최초로 생성자를 찾으면 for문을 break해서 빠져나온다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int answer = 0;
for (int i = 1; i < 1000001; i++) {
int constructor = i;
int sum = i;
while (constructor > 0) {
sum += constructor % 10;
constructor /= 10;
}
if (sum == N) {
answer = i;
break; // 최솟값
}
}
System.out.println(answer);
}
}
728x90