Brute Force(2)
[접근방법]
그리 어렵지 않게 풀어낼 수 있다.
216 = 198+1+9+8 = 198
198이라는 생성자의 분해합은 198+1+9+8로 216이 된다.
생성자는 1개 이상이기 때문에 최솟값을 찾기 위해 작은 수 부터 찾아야 한다.
1~N까지 대입해가며 찾는 기본적인 방법으로 풀어보았다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BJ_2231 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int result = 0;
for (int i=0; i <= N; i++){
int number = i;
int sum = 0;
while (number != 0){
sum += number % 10; // number 를 10으로 나눈 나머지를 sum 에 더함
number /= 10; // number 를 10으로 나눈 몫을 다시 num 에 저장
}
if (sum + i == N){
result = i;
break;
}
}
System.out.println(result);
}
}