원본 : www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(reader.readLine());
int disassembledSum[] = new int[n];
for (int i = 1; i < n; i++) {
disassembledSum[i] = i;
for (int j = 0; j < String.valueOf(i).length(); j++) {
disassembledSum[i] += Integer.parseInt(String.valueOf(String.valueOf(i).charAt(j)));
}
}
ArrayList<Integer> result = new ArrayList<Integer>();
for (int i = 0; i < disassembledSum.length; i++) {
if (disassembledSum[i] == n) {
result.add(i);
}
}
if (result.isEmpty()) {
writer.write("0");
} else {
writer.write(String.valueOf(result.get(0)));
}
writer.flush();
}
}
댓글 영역