-
[Programmers/Java] 하샤드 수2022_PPS/2주차 2023. 1. 3. 21:54
- 문제
문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한 조건- x는 1 이상, 10000 이하인 정수입니다.

- 알고리즘
각 자릿수의 합을 구하고 그것을 원래 수로 나눈 값의 나머지가 0이면 true를 출력하도록 하였다.
- 코드
class Solution { public boolean solution(int x) { boolean answer = true; int len = (int)(Math.log10(x)+1); int num = x; int result = 0; for(int i = 0; i<len; i++){ int n = num/(int)Math.pow(10, len-1-i); result += n; num -= n*(int)Math.pow(10, len-1-i); } if(x%result == 0) answer = true; else answer = false; return answer; } }'2022_PPS > 2주차' 카테고리의 다른 글
[BaekJoon/Java] 2163. 초콜릿 자르기 - A031 (0) 2023.01.05 [BaekJoon/Java] 1159. 농구경기 - A046 (0) 2023.01.05 [BaekJoon/Java] 11721. 열 개씩 끊어 출력하기 - A047 (0) 2023.01.03 [LeetCode/Java] 258. Add Digits - A023 (0) 2023.01.03 [LeetCode/Java] 66. Plus One - A003 (0) 2023.01.03