하샤드 수

김나영·2023년 6월 21일
0

프로그래머스

목록 보기
35/39

문제 : 하샤드 수

풀이

boolean answer = false;
  • true와 false로 반환해야하므로 boolean 사용

  • 초기값을 false로 지정

int value = x;
int sum = 0;
  • 양의 정수 x를 int 타입의 변수 value에 저장

  • 자릿수의 합을 담아줄 int 타입의 변수 sum을 선언

while(x>0){
    sum += x % 10;
    x = x/10;
}
  • x는 양의 정수이므로 0이 되기 전까지 무한 반복

  • x를 10으로 나눈 나머지 값을 sum에 저장

  • x를 10으로 나눈 몫은 그대로 while문의 x 값이 됨

  • x가 0이면 while문 탈출

if(value % sum == 0){
  answer = true;
}
  • 만약 value값과 sum을 나눈 나머지가 0이 된다면(나누어떨어지는 수는 하샤드 수이기 때문에)

  • true를 반환

전체 코드

class Solution {
    public boolean solution(int x) {
        boolean answer = false;
        int value = x;
        int sum = 0;
        while(x>0){
            sum += x % 10;
            x = x/10;
        }
        if(value % sum == 0){
            answer = true;
        }
        return answer;
    }
}

0개의 댓글