我们给定一个数字,例如num和一个整数类型变量中存储的总位数,比如digi,任务是计算那些不存在给定数字的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
检查号码是否在那里。如果数字不存在,则不执行任何操作;如果数字不存在,则将计数增加1。
#include<bits/stdc++.h> using namespace std; int count(int n, int digit){ int r =0; int count = 0; //计算给定数字的最小值和最大值 int min = (int)(pow(10, n-1)); int max = (int)(pow(10, n)); //开始循环,直到最大值从最小值开始 for(int i=min; i<max; i++){ int a=i; int f=0; //而a大于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