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

C++에서 N을 나누는 주어진 숫자 N의 자릿수 계산

<시간/>

예를 들어 N이라는 숫자가 주어지고 작업은 숫자 N을 나누는 숫자에서 해당 숫자의 개수를 찾는 것입니다.

기억해야 할 점

  • 숫자가 0이면 무시해야 합니다. 즉, 0에 대해 카운트가 증가하지 않습니다.

  • 숫자가 두 번 나타나고 숫자를 나누는 경우 개수는 숫자 발생에 따라 달라집니다. 예를 들어, 숫자 2240이 주어지고 이 숫자에서 0을 제외한 모든 숫자는 숫자를 나누고 2가 두 번 발생하면 숫자 2에 대해 2가 됩니다.

입력 - 숫자 =2240

출력 - 개수는 3입니다.

설명 − 숫자를 숫자로 나누면 2, 2, 4, 0이 됩니다. 이제 2가 2240을 나누는지 확인하고 예인 경우 개수를 늘립니다. 그렇지 않으면 다음 숫자로 이동합니다. 이 숫자에서 2, 2, 4는 숫자 2240을 나눕니다. 3이고 모든 경우에 숫자 0을 무시합니다.

입력 - 숫자 =755

출력 - 개수는 2입니다.

설명 − 숫자를 숫자로 나누면 7, 5, 5가 됩니다. 이제 7이 예인 경우 755를 나누는지 확인하고 개수를 늘리면 다음 숫자로 이동합니다. 이 숫자에서 5, 5는 숫자 755를 나누므로 개수는 2가 되고 개수는 2가 됩니다. 모든 경우에 숫자 0 무시

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 정수 변수에 숫자를 입력합니다. num

  • num이 0보다 클 때까지 루프 시작

  • 루프 내에서 숫자를 숫자로 나누고 결과를 변수에 계속 저장합니다(예:rem

    ).
  • rem이 숫자를 나누는지 확인하고 yes이면 count 변수의 값을 1씩 늘리고 그렇지 않으면 count 변수의 값을 늘리지 마십시오.

  • 그리고 이 check 문은 0을 무시해야 하므로 rem이 0보다 클 때 적용됩니다.

#include <bits/stdc++.h>
using namespace std;
int count(int num){
   int a=num;
   int count=0,rem;
   while(a>0){
      rem=a%10;
      if(rem > 0){
         if(num%rem==0){
            count++;
         }
      }
      a=a/10;
   }
   return count;
}
int main(){
   int num = 2240;
   cout<<"Count of digits in given number "<<num<<" which divide N are: "<<count(num);
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. -

Count of digits in given number 2240 which divide N are: 3