[백준/BOJ]2231. 분해합 (java) [Bronze 2]

jychan99·2023년 8월 7일
0

  1. 분해합

문제출처 : 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을 출력한다.

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글