728x90
반응형
하샤드 수 구하기,
https://ko.wikipedia.org/wiki/%ED%95%98%EC%83%A4%EB%93%9C_%EC%88%98
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
bool solution(int x) {
bool answer = false;
int harshad=0;
int xbuf=x;
while(xbuf > 0) {
harshad += xbuf % 10;
xbuf /= 10;
}
if(x % harshad == 0) {
answer = true;
}
return answer;
}
x를 각 자릿수 별로 분리한 수를 모두 더한 값(harshad)으로 x를 나눴을 때 나눠 떨어지는, 즉 나머지가 0이면 하샤 드 수이다.
238로 예를 들면,
2+3+8 = 13이다.
238/13 = 18.3 이다. 따라서, 때문에 238은 하샤드 수가 아니다.
다시 18로 예를 들어보면,
1+8 = 9,
18/9 = 2,
나누어 떨어진다. 즉 나머지가 없기 때문에 하샤드 수라고 할 수 있다.
728x90
반응형
'Programming language > 코딩테스트' 카테고리의 다른 글
코딩테스트 - 번호가리기, C언어 (0) | 2022.09.29 |
---|---|
코딩테스트 - 두 정수 사이의 합, C언어 (0) | 2022.09.29 |
코딩테스트 - 콜라츠 추측, Collatz, C언어 (0) | 2022.09.29 |
코딩테스트-문자열을 정수로 바꾸기, C언어, itoa() (0) | 2022.09.29 |
코딩테스트 - 정수 제곱근 판별, C언어 (0) | 2022.09.29 |