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

C++で指定された数値で割り切れるn桁の数値をカウントします


たとえば、dとnumの2つの要素が与えられます。タスクは、numで割り切れるd桁の数字を見つけることです。

簡単に言うと、dに入力2を指定したとすると、最初にすべての2桁の数字、つまり10〜99を見つけてから、numで割り切れるすべての数字を見つけます。

例を参考にして、これについてもっと理解しましょう-

入力 −桁=2、数値=12

出力 −指定された数で割り切れるn桁の数の数:8

説明 − 12で割り切れる2桁の数字は12、24、36、48、60、72、84、96であるため、12で割り切れる2桁の数字は8つあります。

入力 −桁=2、数値=9

出力 −与えられた数で割り切れるn桁の数の数− 10

説明 − 9で割り切れる2桁の数字は18、27、36、45、54、63、72、81、90、99であるため、9で割り切れる2桁の数字は10個あります。

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

  • 要素の数字と数字を入力として使用します。

  • 変数countを0として割り当てて、numで割り切れる桁数をカウントします。

  • digi_firstをpow(10、digit-1)として宣言して設定します

  • digi_lastを宣言してpow(10、digit)に設定します

  • ここで、d_firstをdigi_first%numとして宣言し、d_lastをdigi_last%numとして設定します

  • d_firstとd_lastを見つけたら、digi_firstを(digi_first --d_first)+ numとして設定し、digi_lastをdigi_last--d_lastとして設定します

  • 次に、カウントを((digi_last --digi_first)/ num + 1)に設定します。

  • 返品と印刷回数。

#include <cmath>
#include <iostream>
using namespace std;
int main(){
   int digit = 2 , num = 9;
   //store the count
   int count= 0 ;
   int digi_first = pow(10, digit - 1);
   int digi_last = pow(10, digit);
   int d_first = digi_first % num;
   int d_last = digi_last % num;
   digi_first = (digi_first - d_first) + num;
   digi_last = digi_last - d_last;
   count = ((digi_last - digi_first) / num + 1);
   cout<<"Count of n digit numbers divisible by given number: "<<count<<"\n";
   return 0;
}

出力

上記のコードを実行すると、次の出力が得られます-

Count of n digit numbers divisible by given number: 10

  1. C++で設定された最大N個の数字

    ソートされた数字のセットDが1つあり、{1、 2、 3、 4、 5、 6、 7、 8、の空でないサブセットがあるとします。 9} 0を除く。ここで、これらの数字を使用して、各数字を必要な回数だけ使用して、いくつかの数字を書き込みます。したがって、D ={2、 3、 7}の場合、 23、 771、2372327などの数字を書くことができます。 ここで、N以下の書き込み可能な正の整数の数を見つける必要があります。 したがって、入力がD =[2,3,4,7]、N =100の場合、数値は2、3、4、7、22、23、24、27になる可能性があるため、出力は20になります。 、32、33、34、37、

  2. C++で指定された範囲の階乗数をカウントします

    変数が保持する整数値から始まり、たとえば開始から変数の終了までの範囲が与えられます。タスクは、指定された範囲で使用可能な階乗数の総数をカウントすることです。 階乗数とは 数値の階乗は、数値の桁を1で除算しながら、数値の桁を乗算することによって計算されます。これは、記号「!」で示されます。つまり、0!、1!、2!、3!、5!、...です。 、等。 0の階乗!と1!常に1です。 I.e. factorial of 2 = 2 * (2-1) = 2 * 1 = 2       factorial of 3 = 3 * (3-1) * (2-1) = 3 * 2 *