프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12947
① 입력받은 정수의 자릿수마다 값을 더함
<int sumOfDigit = 0; // 자릿수 합
while(x>0){
sumOfDigit += x%10;
x = x/10;
}
② 입력받은 수를 자릿값들의 합으로 나누어 하샤드를 판별함
if(num%sumOfDigit == 0){
return true;
}
① 입력받은 정수를 String으로 자릿수의 값을 한자리씩 구분함
String[] num = String.valueOf(x).split(""); // 입력받은 숫자를 문자열 배열 한자리씩 나눔
② 구분한 값들을 int로 바꿔 더해줌
int sum = 0;
for(String s : num){ // 문자열 배열에 저장된 자릿수의 값들을 한개씩 뽑아 모두 더함
sum += Integer.parseInt(s);
}
③ 입력받은 수를 자릿값들의 합으로 나누어 하샤드를 판별함
if(x%sum == 0){
return true;
}
public class Harshad {
// int로 값을 받아 계산하는 방식
public boolean solution(int x){
int num = x;
// 자리수 합
int sumOfDigit = 0; // 자릿수 합
while(x>0){
sumOfDigit += x%10;
x = x/10;
}
if(num%sumOfDigit == 0){
return true;
}
return false;
}
public static void main(String[] args) {
Harshad hs = new Harshad();
System.out.println(hs.solution(10));
System.out.println(hs.solution(11));
}
}
public class Harshad {
//String으로 값을 받아 계산하는 방식
public boolean solution2(int x){
String[] num = String.valueOf(x).split(""); // 입력받은 숫자를 문자열 배열 한자리씩 나눔
int sum = 0;
for(String s : num){ // 문자열 배열에 저장된 자릿수의 값들을 한개씩 뽑아 모두 더함
sum += Integer.parseInt(s);
}
if(x%sum == 0){
return true;
}
return false;
}
public static void main(String[] args) {
Harshad hs = new Harshad();
System.out.println(hs.solution2(10));
System.out.println(hs.solution2(11));
}
}