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한다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
콜라츠 추측(JAVA) (0) | 2022.01.19 |
---|---|
제일 작은 수 제거하기(JAVA) (0) | 2022.01.19 |
정수 제곱근 판별(JAVA) (0) | 2022.01.19 |
정수 내림차순으로 배치하기(JAVA) (0) | 2022.01.19 |
자연수 뒤집어 배열로 만들기(JAVA) (0) | 2022.01.18 |