https://www.acmicpc.net/problem/2231
1부터 n-1까지의 모든 수에 대해
(각 자리의 수의 합 + 그 수) = n 인지 확인한다.
이 때 각 자리의 수의 합을 구하는 방법을 두가지로 풀었다.
1. 숫자를 문자열로 바꾼 다음 문자열의 각 자리 문자를 숫자로 바꾸어 더한다.
2. while문을 사용하여 숫자가 0보다 클 동안 숫자를 10으로 나눈 나머지 즉 1의 자리 수를 더한 후 숫자를 10으로 나눈 몫을 다음 반복문에 사용한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int m = 0;
for(int i = 1; i < n; i++) {
int sum = i;
String s = String.valueOf(i);
for(char c : s.toCharArray()) {
sum += Character.getNumericValue(c);
}
if(sum == n) {
m = i;
break;
}
}
System.out.println(m);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int m = 0;
for(int i = 1; i < n; i++) {
int sum = i;
int number = i;
while(number != 0) {
sum += number % 10;
number /= 10;
}
if(sum == n) {
m = i;
break;
}
}
System.out.println(m);
}
}