C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で特定の桁を持たないn桁の数値をカウントします


整数型変数に格納されている数値、たとえばnumと合計桁数、たとえばdigiが与えられます。タスクは、指定された桁がない場合に形成できるn桁の数値の数を計算することです。

入力 − n =2、数字=2

出力 −カウントは153

説明 −桁2を持たない2桁の数字(n)の数は、10、11、13、14、15、16、17、18、19、30、31、33、34、......として153です。など

入力 − n =3、数字=3

出力 −カウントは2187

説明 − 3桁の数字を持たない3桁の数字(n)の数は、10、11、13、14、15、16、17、18、19、30、31、33、34、......として2187です。など

以下のプログラムで使用されているアプローチは次のとおりです

  • 数値「n」と数字を整数変数として入力します

  • これらの変数を、カウント操作を実行する関数に渡します

  • 「n」が到達できる2つの変数の最小値と最大値を設定します。たとえば、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;
   //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

  1. C++では「d」桁の正の整数を0で数えます。

    このチュートリアルでは、数字が0の「d」桁の数字を見つけるプログラムについて説明します。 このために、番号「d」が提供されます。私たちのタスクは、「d」桁とその桁の1つとして0を持つ正の整数の数を数えて出力することです。 例 #include<bits/stdc++.h> using namespace std; //counting the number of 'd' digit numbers int count_num(int d) {    return 9*(pow(10,d-1) - pow(9,d-1)); } int main(

  2. C++で1からNまでの概素数の数を見つける

    数Nがあるとします。1からNの範囲でほぼ素数を見つける必要があります。正確に2つの異なる因子がある場合、その数は概素数と呼ばれます。数には任意の数の非素因数を含めることができますが、2つの素因数である必要があります。したがって、Nが2の場合、出力は2になります。6と10の2つの数値があります。 ここでは、エラトステネスのふるいアプローチを使用します。より良いアイデアを得るために、次の実装を確認してください。 例 #include<iostream> #define N 100005 using namespace std; bool prime[N]; void SieveOfE