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
-
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(
-
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