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

C++에서 주어진 숫자로 나누어지는 n자리 숫자 세기


d와 num이라는 두 가지 요소가 주어졌습니다. 작업은 num으로 나눌 수 있는 d자리 숫자를 찾는 것입니다.

간단히 말해서 d에 2를 입력했다고 가정해 보겠습니다. 따라서 먼저 모든 2자리 숫자, 즉 10-99를 찾은 다음 num으로 나눌 수 있는 모든 숫자를 찾습니다.

예제를 통해 이에 대해 더 자세히 알아보겠습니다. −

입력 - 숫자 =2, 숫자 =12

출력 − 주어진 숫자로 나누어 떨어지는 n자리 숫자의 개수:8

설명 − 12로 나누어 떨어지는 두 자리 수는 12, 24, 36, 48, 60, 72, 84, 96이므로 12로 나누어 떨어지는 두 자리 수는 8개입니다.

입력 - 숫자 =2, 숫자 =9

출력 − 주어진 숫자로 나누어지는 n자리 숫자의 개수 − 10

설명 − 9로 나누어 떨어지는 두 자리 수는 18, 27, 36, 45, 54, 63, 72, 81, 90, 99이므로 9로 나누어 떨어지는 두 자리 수는 10개입니다.

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

  • 요소 숫자와 숫자를 입력으로 사용합니다.

  • 숫자로 나눌 수 있는 자릿수를 계산하려면 변수 count를 0으로 할당합니다.

  • digi_first를 pow(10, digit - 1)

    로 선언하고 설정합니다.
  • digi_last를 pow(10, digit)로 선언하고 설정합니다.

  • 이제 d_first를 digi_first % num으로, d_last를 digi_last % num으로 선언하고 설정합니다.

  • d_first 및 d_last를 찾은 후 digi_first를 (digi_first - d_first) + num으로 설정하고 digi_last를 digi_last - d_last로 설정

  • 이제 count를 ((digi_last - digi_first) / num + 1)으로 설정합니다.

  • 반환 및 인쇄 횟수.

예시

#include <cmath>
#include <iostream>
using namespace std;
int main(){
   int digit = 2 , num = 9;
   //store the count
   int count= 0 ;
   int digi_first = pow(10, digit - 1);
   int digi_last = pow(10, digit);
   int d_first = digi_first % num;
   int d_last = digi_last % num;
   digi_first = (digi_first - d_first) + num;
   digi_last = digi_last - d_last;
   count = ((digi_last - digi_first) / num + 1);
   cout<<"Count of n digit numbers divisible by given number: "<<count<<"\n";
   return 0;
}

출력

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

Count of n digit numbers divisible by given number: 10