num이라고 하는 숫자와 정수 유형 변수에 저장된 총 자릿수(digit)가 주어지고 작업은 주어진 자릿수가 없는 곳에서 형성될 수 있는 n개의 숫자 숫자의 개수를 계산하는 것입니다.
입력 − n =2, 숫자 =2
출력 - 개수는 153입니다.
설명 − 2가 아닌 두 자리 숫자(n)의 개수는 모두 153이므로 10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34,....... 등.
입력 − n =3, 숫자 =3
출력 - 개수는 2187입니다.
설명 − 3자리가 아닌 세 자리 수(n)의 개수는 모두 2187이므로 10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34,....... 등.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
숫자 'n'과 숫자를 정수 변수로 입력
-
카운트 연산을 수행할 함수에 이 변수를 전달합니다.
-
'n'이 도달할 수 있는 두 개의 변수 최소값과 최대값을 설정합니다. 예를 들어, 2자리 숫자는 최소값 10에서 시작하여 99까지 끝나는 것과 유사하게 3자리 숫자도 최소 100에서 시작하여 999까지입니다.
-
최소에서 최대까지 루프 시작
-
루프 내에서 'n'이 0보다 클 때까지 while 시작
-
번호가 있는지 없는지 확인하십시오. 숫자가 있으면 아무 작업도 하지 않고 숫자가 없으면 1씩 증가시킵니다.
예
#include<bits/stdc++.h> using namespace std; int count(int n, int digit){ int r =0; int count = 0; //calculate the min and max of the given number int min = (int)(pow(10, n-1)); int max = (int)(pow(10, n)); //start the loop till max value start from min for(int i=min; i<max; i++){ int a=i; int f=0; //while a is greater than 0 while(a>0){ r=a%10; a=a/10; if(r==digit){ f++; } if(f==0){ count++; } } } return count; } int main(){ int n = 2, digit = 2; cout<<"Count of "<<n<< digit numbers not having a particular digit "<<digit<<" is :"<<count(n, digit); return 0; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다 -
Count of 2 digit numbers not having a particular digit 2 is :153