반응형
자연수 N을 입력하면 N의 가장 작은 생성자를 구해야 한다.
245의 분해합은 245 + 2 + 4 + 5 = 256이다. 245 그 자체의 수와 각 자릿수를 더한다.
256의 분해합은 245가 된다.
N으로 256을 입력하면 245가 출력되어야 한다. 256의 생성자는 245이다.
생성자는 있을수도 없을수도 있고 없으면 0을 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int index = N; // 생성자가 되는지 살펴볼 변수 (N-1부터 1까지 검사)
int res = 0; // 결과값
while(index > 0) {
index--; //N-1부터 생성자인지 확인한다. (N보다 낮은 수 이므로)
int com = index; //생성자 자신 + 각 자릿수이므로 우선 자신 저장
int unit = index; //각 자릿수를 구할 변수
while(unit != 0) { //10으로 나눴을 때 몫이 0이면 모든 자릿수 검사 완료
com += unit % 10; //10으로 나누고 나머지를 더함 (1의 자리)
unit /= 10; // 10으로 나누고 몫을 저장 (한 자릿수 씩 낮춰짐)
} // while 다 돌면 자신 수 + 각 자릿수 다 더한 것
if(com == N) { // N과 같으면 생성자
res = index;
}
} // 생성자가 여러개라도 1씩 낮추면서 더 낮은 생성자가 있으면 결과값이 새로 정의 된다.
System.out.println(res);
}
}
|
cs |
설명은 주석에 다 있다.
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 10926번 자바 ??! [입출력과 사칙연산] (0) | 2022.08.08 |
---|---|
백준 7568번 자바 덩치 [부루트 포스] (0) | 2021.10.12 |
백준 2798번 JAVA 자바 블랙잭 [브루트 포스] (0) | 2021.08.17 |
백준 11729번 java 하노이 탑 이동 순서 [재귀] (0) | 2021.08.16 |
백준 2447번 JAVA 별 찍기 - 10 [재귀] (0) | 2021.08.02 |
댓글