정답

    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;        
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.