728x90
입력받은 값 a에서부터 1씩 뺀 후에
그 값의 분해합이 처음에 주어진 값 a와 일치할 경우
res값을 갱신해준다
a-1부터 1이 될 때까지 while문을 돌리며
while문이 끝난 후의 res값이 문제에서 요구하는 가장 작은 생성자이다
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 28 29 | import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int index = a; int res=0; while(index>0) { index--; // System.out.println(index); int comp=index; int unit=index; while(unit!=0) { comp+=unit%10; // System.out.println("comp값 " + comp); unit/=10; } if(comp==a) res=index; } System.out.println(res); } } |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 10799번 쇠막대기 (0) | 2019.03.24 |
---|---|
[백준][Java] 1120번 문자열 (0) | 2019.03.24 |
[백준][Java] 1159번 농구 경기 (0) | 2019.02.19 |
[백준][Java] 2309번 일곱 난쟁이 (1) | 2019.02.19 |
[백준][Java] 5597번 과제 안 내신 분..? (0) | 2019.02.13 |