정답
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; }