Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 숫자를 나누는 숫자의 자릿수 찾기

<시간/>

숫자가 주어졌다고 가정해보자. 우리는 그 수를 균등하게 나누는 수의 자릿수를 세어야 합니다. 숫자가 1012이고 결과가 3이라고 가정합니다. 1012를 균등하게 나누는 세 자리 1, 1, 2가 있습니다.

이를 해결하기 위해 모듈러스 연산을 사용하여 숫자의 각 자릿수를 찾고 숫자가 해당 자릿수로 나눌 수 있는지 여부를 확인한 다음 나눌 수 있는 경우 카운터를 늘립니다. 숫자가 0이면 해당 숫자를 무시하십시오.

예시

#include<iostream>
using namespace std;
   int countDivDigit(int num) {
   int count = 0;
   int temp = num;
   while(temp){
      int div = temp%10;
      if(div != 0){
         if(num % div == 0)
            count++;
      }
      temp /= 10;
   }
   return count;
}
int main() {
   int num = 1012;
   cout << "Number of digits that divides " << num << " evenly, is: " << countDivDigit(num);
}

출력

Number of digits that divides 1012 evenly, is: 3