문제설명

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

제한 사항

x는 1 이상, 10000 이하인 정수입니다.

 

문제 풀이

1. int x 값을 String 타입으로 바꾼후 .split()을 이용해서 배열로 만든다.

2. 각 인덱스 값을 더해준다. -> int sum 

3. x를 sum으로 나눈 나머지가 ==0 이면 true, 아니면 false 를 리턴한다.

public class harshadNumber {
    public boolean solution(int x) {
        boolean answer = true;

        String num = String.valueOf(x);
        String[] numbers = num.split("");

        int sum =0;

        for (String number : numbers) {
            sum += Integer.parseInt(number);
        }
        
        if(x%sum==0){
            return answer;
        } else{
            answer=false;
            return answer;
        }

    }

    public static void main(String[] args) {
        harshadNumber method = new harshadNumber();
        System.out.println(method.solution(18));
    }
}

처음에 기본 for문을 사용했다가 향상된 for문을 사용해봤습니다.

훨씬 편하네요. 

+ Recent posts