우리는 두 개의 정수 m과 n을 받았습니다. 목표는 n으로 나눌 수 있는 m자리 숫자를 계산하는 것입니다.
m=1이면 숫자는 0,1,2,3,4,5,6,7,8,9이고 n=3이면 3으로 나눌 수 있는 숫자=0,3,6,9 count=4입니다.피>
예를 들어 이해합시다.
입력 - m=2, n=9
출력 − n − 10으로 나눌 수 있는 m자리 숫자의 개수
설명 - 9로 나누어 떨어지는 10에서 99 사이의 숫자는 -
18, 27, 36, 45, 54, 63, 72, 81, 90, 99
입력 m=3, n=300
출력 − n으로 나누어지는 m자리 숫자의 개수:3
설명 - 100에서 999 사이의 숫자는 300으로 나눌 수 있습니다. -
300, 600, 900
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수 m과 n을 취합니다.
-
가장 큰 m-1 자리 숫자를 num1로 계산
-
가장 큰 m 자리 숫자를 num2로 계산
-
findCount(int n, int L, int R) 함수는 n과 범위( num1과 num2 사이)를 입력으로 받아 n으로 나눌 수 있는 해당 범위의 모든 숫자를 반환합니다.
-
초기 카운트를 0으로 합니다.
-
i=L에서 i=R로 시작합니다. i%n==0이면 카운트를 증가시킵니다.
-
결과로 카운트를 반환합니다.
예시
#include<bits/stdc++.h> using namespace std; // Returns count of m digit numbers having n // as divisor int findCount(int n, int L, int R){ int count=0; int i; for(int i=L;i<=R;i++){ if(i%n==0) { count++; } } return count; } int main(){ int M = 2, N = 9; int i; int num1 = 0; //largest m-1 digit no. for (i = 0; i < (M - 1); i++) num1 = (num1 * 10) + 9; int num2 = 0; //largest m digit no. for (i = 0; i < M; i++) num2 = (num2 * 10) + 9; cout<<"Count of M digit no.s divisible by N:"<<findCount(N,num1+1,num2); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다-
Count of M digit no.s divisible by N:11