728x90
프로그래머스 문제
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
x | return |
10 | true |
12 | true |
11 | false |
13 | false |
하샤드 수?
- "하샤드 수 (harshad number) , "니번 수" 라고도 불리우는 수입니다.
- 하샤드 수 는 (주어진 진법 에서) 그 수의 "각 자릿수 숫자의 합" 으로 그 수가 "나누어지는 양의 정수" 를 말합니다.
"자기자신이 각 자리숫자의 합의 몇 배가 되어서 약수와 배수의 관계가 되는 수" 를 일컫는 말입니다.
코틀린 하샤드 수 답
class Solution {
fun solution(x: Int): Boolean {
var answer = true
var num = x
var sum = 0
while(num>0) {
sum += num %10
num /= 10
}
if(x % sum == 0)
answer = true
else
answer = false
return answer
}
}
코틀린 풀이
while (num > 0) 입력된 정수 x의 각 자릿수를 구하기 위해, num이 0보다 큰 동안 반복합니다.
sum += num % 10을 사용해 현재 num의 일의 자릿수를 sum에 더하여,
num /= 10을 num을 10으로 나눈 몫으로 갱신하여 다음 자릿수를 처리합니다.
if (x % sum == 0) 입력된 정수 x를 sum으로 나누어 떨어지는지 검사합니다.
answer 변수를 이용하여 결과를 저장합니다. 나누어 떨어지면 true, 그렇지 않으면 false로 설정됩니다.
return answer 최종적으로 함수는 answer 값을 반환합니다. 따라서, 입력된 정수 x의 각 자릿수의 합이 x 자체로 나누어 떨어지면 true를, 그렇지 않으면 false를 반환합니다.
728x90
반응형
'Kotlin Language > programmers' 카테고리의 다른 글
Kotlin - 두 정수 사이의 합 ( 22 ) (0) | 2023.12.07 |
---|---|
Kotlin - 정수 내림차순으로 배치하기 코딩 연습 ( 20 ) (0) | 2023.12.07 |
Kotlin - 정수 제곱근 판별 프로그래머스 코딩 연습 ( 19 ) (0) | 2023.12.06 |
Kotlin - 문자열을 정수로 바꾸기 프로그래머스 코딩 연습 ( 18 ) (0) | 2023.12.06 |
Kotlin - 자연수 뒤집어 배열로 만들기 프로그래머스 코딩 연습 ( 17 ) (0) | 2023.12.06 |
Kotlin - x만큼 간격이 있는 n개의 숫자 ( 16 ) (0) | 2023.12.05 |