Find Digits | HackerRank
Calculate the number of digits in an integer that evenly divide it.
www.hackerrank.com
<문제>

input: 첫번째 줄에는 테스트 케이스의 개수를 입력받고,
두번째 줄부터는 테스트 케이스 개수만큼 테스트할 숫자를 입력받는다.
output: 입력받은 수의 각 자리 수로 나누어 떨어지는지 테스트 한 후 나눠떨어지는 개수를 리턴한다.
<코드>
int findDigits(int n)
{
int count=0, temp;
for(int i=n; i>0; i=i/10)
{
temp = i%10;
if(temp ==0)
continue;
if(n%temp == 0)
count++;
}
return count;
}
<풀이>
단순하게 변수를 두 개 만들고 하나는 나눠떨어지는 수를 세고, 나머지 하나는 각 자리수를 저장해서 원래 수로 나누면 될 것 같다. 나눠떨어지는 개수를 세기 위해 변수 count를 선언하고, 각 자리수를 저장하기 위한 변수 temp를 선언했다.
for 반복문을 돌면서 temp는 각자리수를 저장하기 위해 10으로 나누고, 매개변수로 전달받은 n을 temp로 나눴을 때 나눠떨어지면 count값을 증가시켰다. 그리고 마지막에 count를 리턴하여 문제를 풀 수 있었다.
<실행결과>

'c언어 스터디 > HackerRank' 카테고리의 다른 글
| [HackerRank] Bitwise Operators (0) | 2021.10.02 |
|---|---|
| [HackerRank] Tree: Postorder Traversal (0) | 2021.10.02 |
| [HackerRank] Sorting-Running Time of Algorithms (0) | 2021.09.26 |
| [HackerRank] Day of the Programmer (0) | 2021.09.18 |
| [HackerRank] Search- Sherlock and Array (0) | 2021.09.18 |