문제설명
양의 정수 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문을 사용해봤습니다.
훨씬 편하네요.
'프로그래머스' 카테고리의 다른 글
자바 java 프로그래머스 콜라츠 추측 오버플로우 문제 (0) | 2022.11.23 |
---|---|
자바 java 프로그래머스 제일 작은 수 제거하기 (0) | 2022.11.23 |
자바 java 프로그래머스 정수 제곱근 판별 (0) | 2022.11.23 |
자바 java 프로그래머스 정수 내림차순으로 배치하기 (0) | 2022.11.23 |
자바 java 프로그래머스 자연수 뒤집어 배열로 만들기 (0) | 2022.11.22 |