-
[2231번] 분해합 - Java알고리즘 연습 2021. 11. 18. 21:22
1. 배운점
2. 개선할 점
3. 궁금한 점
- for문의 반복 횟수를 좀 더 줄일 수 있는 방법은 없을까?
4. 풀이
import java.util.Scanner; public class Main { public static void main(String[] args) { // import java.util.Scanner Scanner scan = new Scanner(System.in); // 자연수 받기 int target = scan.nextInt(); // 생성자 값 초기화 int decomposedNum = 0; // 1부터 target - 1 까지 생성자 검색 for(int i = 1; i < target; i++) { // i int number = i; // 자리수 합을 저장할 변수 int digitSum = 0; // 자리수 마다 변수에 더해주기 while(number != 0) { digitSum += number % 10; number /= 10; } // 분해합에 해당한다면 생성자에 해당 i값 저장 if(digitSum + i == target) { decomposedNum = i; break; } } // 결과 출력 System.out.println(decomposedNum); } }
'알고리즘 연습' 카테고리의 다른 글
[2750번] 수 정렬하기 -Java (0) 2021.11.19 [1002번] 터렛 - Java (0) 2021.11.19 [4948번] 베르트랑 공준 - Java (0) 2021.11.17 [9020번] 골드바흐의 추측 - Java (0) 2021.11.17 [10809번] 알파벳 찾기 - Java (0) 2021.11.13