알고리즘/프로그래머스

하샤드 수(JAVA)

mrban 2022. 1. 19. 17:00

1. 문제

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 한다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수이다. 자연수 x를 매개변수로 받아 x가 하샤드 수인지 아닌지 검사하는 함수를 만드시오.

 

2. 제한
x는 1 이상, 10000 이하인 정수입니다.

 

3. 정답
class Solution {
    public boolean solution(int x) {
        int sum = 0;
        int temp = x;

        while (temp != 0) {
            sum += (temp % 10);
            temp /= 10;
        }
        if (x % sum == 0) {
            return true;
        }
        else {
            return false;
        }
    }
}
 

4. 설명

4-1. while문을 통해 입력받은 숫자의 모든 자리수를 하나씩 떼서 더해준다.

4-2. 입력받은 x값을 위에서 구한 합으로 나누어 떨어진다면 하샤드 수이므로 true값을 return한다.

4-3. 반대로 나누어 떨어지지 않는다면 하샤드 수가 아니므로 false값을 return한다.