정답
public boolean isHarshad(int num) {
int su = num;
int sum = 0;
boolean isHarshad = false;
while (su > 0) {
sum += su % 10;
su = su / 10;
}
if (num % sum == 0)
isHarshad = true;
return isHarshad;
}
해설
문제를 해결하는 방법은 여러 방법이 있습니다. 문제의 요구 사항을 잘 살펴 알맞은 방법을 사용해 해결해봅시다.
이 문제를 해결하기 위해서는 18이라는 숫자가 들어왔을 때 1과 8의 값을 얻어와야 합니다. 그러나 입력 값이 반드시 두 자리의 정수만 들어올 수 있는 것은 아니기 때문에 더 큰 정수가 들어오더라도 문제를 해결할 수 있게 해야 합니다.
while (su > 0) {
sum += su % 10;
su = su / 10;
}