더북(TheBook)

정답

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이라는 숫자가 들어왔을 때 18의 값을 얻어와야 합니다. 그러나 입력 값이 반드시 두 자리의 정수만 들어올 수 있는 것은 아니기 때문에 더 큰 정수가 들어오더라도 문제를 해결할 수 있게 해야 합니다.

while (su > 0) {
    sum += su % 10;
    su = su / 10;        
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.