728x90
https://www.hackerrank.com/challenges/find-digits/problem
Algorithms > Implementation
정수 n이 주어지면 각 자릿수가 n의 약수인지 판별한다.
코드
int findDigits(int n) {
int result = 0, now = n;
while (now){
if (now % 10 == 0){
now /= 10;
continue;
}
else if (n % (now % 10) == 0) result++;
now /= 10;
}
return result;
}
설명
약수의 개수를 저장할 정수형 변수 result를 0으로 선언하고,
현재 숫자를 저장할 정수형 변수 now를 n으로 초기화한다.
now가 0보다 클 때 반복되는 while 루프를 이용한다.
now를 10으로 나눈 나머지, 즉 현재 비교하는 자릿수가 0이면 now를 now/10으로 업데이트하고 다음 자릿수로 넘어간다.
현재 비교하는 자릿수가 n의 약수이면 result를 1 증가시키고 now를 now/10으로 업데이트한다.
모든 과정이 끝나면 result를 리턴한다.
728x90
'C & C++ > HackerRank' 카테고리의 다른 글
[HackerRank] Print in Reverse (0) | 2021.08.29 |
---|---|
[HackerRank] Tree: Level Order Traversal (0) | 2021.08.13 |
[HackerRank] Cycle Detection (1) | 2021.08.04 |
[HackerRank] Print the Elements of a Linked List (0) | 2021.08.04 |
[HackerRank] Sparse Arrays (1) | 2021.07.29 |