문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
문제 유형
- 숫자의 자리값 구하기
- 나누어 떨어지는지 확인하기
의사코드
- 결과값을 저장할 변수(result)를 선언한다.
- 자릿수 합을 저장할 변수(sum)을 선언한다.
- [반복문] x > 0 이면 반복한다.
- x를 10으로 나누어 변수(remain)에 저장한다.
- sum에 remain을 더한다.
- x를 10으로 나눈다.
- 만약 입력값(x)를 sum으로 나눈 나머지가 0이라면
- result을 true로 설정한다.
- 결과값(result)를 반환한다.
코드 작성
bool solution(int x) {
bool result = false;
int sum = 0;
int originalX = x;
while (x > 0)
{
int remain = x % 10;
sum += remain;
x /= 10;
}
if (originalX % sum == 0)
result = true;
return result;
}'Algorithm > Practice' 카테고리의 다른 글
| [Algorithm] 콜라츠 추측 (0) | 2024.12.12 |
|---|---|
| [Algorithm] 두 정수 사이의 합 (0) | 2024.12.11 |
| [Algorithm] 정수 내림차순으로 배치하기 (0) | 2024.12.11 |
| [Algorithm] 정수 제곱근 판별 (1) | 2024.12.10 |
| [Algorithm] 문자열을 정수로 바꾸기 (1) | 2024.12.10 |