알고리즘/프로그래머스
하샤드 수(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한다.