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