백준 - JAVA

2231번 : 분해합

uhyvn 2023. 8. 16. 15:48

 

https://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.IOException;
import java.io.InputStreamReader;

public class p2231 {
    public static void main(String[] args) throws IOException {
    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        String s = br.readLine(); // n의 길이를 쉽게 알기 위해 문자열로 입력받기
        int n = Integer.parseInt(s); // n값 저장
        int result = 0; // 정답 변수 생성

        for (int i = (n - (s.length() * 9)); i < n; i++) { // 최솟값부터 완전탐색
            int num = i; // k를 나타내는 변수
            int sum = 0; // k의 각 자릿수 합을 나타내기 위한 변수
            
            while (num != 0) { // 각 자릿수 합을 구하는 반복문
                sum += num % 10;
                num /= 10;
            }
            
            if (sum + i == n) { // 생성자가 맞다면 반복문 종료, 출력
                result = i;
                break;
            }
        }
        System.out.println(result);
    }
}

 

'백준 - JAVA' 카테고리의 다른 글

2503번 : 숫자 야구  (0) 2023.08.17
10448번 : 유레카 이론  (0) 2023.08.16
15649번 : N과 M (1)  (0) 2023.08.10
5568번 - 카드 놓기  (0) 2023.08.09
20546번 - 기적의 매매법  (0) 2023.08.07