본문 바로가기

백준 문제풀기/JAVA

[백준 2231 JAVA 자바] 분해합

245의 분해합은 256(=245 + 2 + 4 + 5)입니다

245는 256의 생성자입니다

 

자연수 N의 가장 작은 생성자를 구합시다

 

1. 1부터 점점 높여가면서

2. 그 수 + 각 자리수 = N이 되면 출력합시다

3. N에 도달해버렸다면 0을 출력합시다

 

코드입니다

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int flag = 0;
		
		int n = scan.nextInt();
		
		for (int i=0; i<n; i++) {
			int sum = i;
			int len = String.valueOf(i).length();
			for (int j=0; j<len; j++) {
				sum += Integer.parseInt(String.valueOf(i).substring(j, j+1));
			}
			
			if(sum==n) {
				System.out.println(i);
				flag = 1;
				break;
			}
		}
		if(flag==0) {
			System.out.println(0);
		}
	}
}

 

sum = i 부터 시작하지 않고

N - (N의 자릿수)*10부터 시작하면 연산이 줄지만

 

성공해버렸으니 나중에 합시다