문제출처 : https://www.acmicpc.net/problem/2231
code
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int N_len = (int)Math.log10(N)+1;
int result=0;
for(int i=N-(N_len*9);i<N;i++){
int sum=i;
int temp = i;
int temp_len = (int)Math.log10(temp)+1;
for(int j=0;j<temp_len;j++){
sum+=temp%10;
temp/=10;
}
if(sum==N){
result=i;
break;
}
}
System.out.print(result);
}
}
각자리의 숫자를 더한 합은 (자릿수*9)이므로
반복할때 전부다 반복하는것이 아니라 (자릿수*9)번만 반복하면된다. 이안에 맞는 생성자가없으면 생성자가 없으므로 0을 출력한다.