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

C++でkで割り切れる配列内の要素の数を数えます


正の整数の配列と整数変数kが与えられます。タスクは、指定された値kで割り切れる配列内の要素の数のカウントを計算することです。

入力 − int arr [] ={4、2、6、1、3、8、10、9}、k =2

出力 −2で割り切れる配列内の要素の数を数える− 5

説明 −配列内の要素を値kで除算し、リマインダーが0であるかどうかを確認します。つまり、4は2で割り切れる、2は2で割り切れる、6は2で割り切れる、1は2で割り切れない、3は2で割り切れない、8は2で割り切れる、10は2で割り切れる、9は'tは2で割り切れません。したがって、配列には、kで完全に割り切れる5つの要素があります。つまり2です。

入力 − int arr [] ={3、2、9、15、0、8、10}、k =3

出力 −3で割り切れる配列内の要素の数を数えます− 3

説明 −配列内の要素を値kで除算し、リマインダーが0であるかどうかを確認します。つまり、3は3で割り切れません、2は3で割り切れません、9は3で割り切れます、15は3で割り切れます、0は任意の数で割り切れません、8は3で割り切れません、10は割り切れませんつまり、配列には3つの要素があり、これらはkで完全に割り切れます。つまり23

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

特定の問題を解決するには、複数のアプローチがあります。そのため、まずは素朴なアプローチを採用します。

  • 整数要素の配列と整数変数kを入力します

  • 配列の長さを計算し、さらに処理するためにデータを関数に渡します。

  • kで割り切れる要素の数を格納するために、一時変数の数を取ります

  • 0から配列の長さまでループFORを開始します

  • ループ内で、IF arr [i]%k =0を確認してから、カウントを1ずつ増やします

  • カウントを返す

  • 結果を印刷します。

効率的なアプローチ

  • 整数型のベクトルに要素を入力し、整数変数kを取ります。

  • kで割り切れる要素の数を格納するために、一時変数の数を取ります

  • 引数としてvector.begin()、vector.end()を取り、トラバーサルを開始し、0の場合はi%kを返す組み込みのcount_if()関数の呼び出しとしてカウントを設定します。

  • 結果を印刷します。

例(素朴なアプローチ)

#include <bits/stdc++.h>
using namespace std;
int divisible_k(int arr[], int size, int k){
   int count = 0;
   for(int i = 0; i<size; i++){
      if(arr[i]%k==0){
         count++;
      }
   }
   return count;
}
int main(){
   int arr[] = {4, 2, 6, 1, 3, 8, 10, 9};
   int k = 2;
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count the number of elements in an array which are divisible by "<<k<<" are: "<<divisible_k(arr, size, k);
   return 0;
}

出力

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

Count the number of elements in an array which are divisible by 2 are: 5

例(効率的なアプローチ)

#include <bits/stdc++.h>
using namespace std;
int main(){
   vector<int> vec = {4, 2, 6, 1, 3, 8, 10, 9};
   int count = count_if(vec.begin(), vec.end(), [](int i, int k = 2) { return i % k == 0; });
   cout<<"Count the number of elements in an array which are divisible by k are: "<<count;
   return 0;
}

出力

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

Count the number of elements in an array which are divisible by 2 are: 5

  1. C++でDで割り切れるN桁の数値を検索します

    NとDの2つの数があるとします。Dで割り切れるN桁の数を見つける必要があります。Nが3で、Dが5の場合、数は500になります。これは簡単に解決できます。 Dが10でNが1の場合、それは不可能です。 Dを入れて、Dの桁数がmであると仮定し、N – m個の0を付けて、N桁の数でDで割り切れるようにします。 例 #include<iostream> using namespace std; string nDigitDivByD(int n, int d) {    string ans = "";    if (d <

  2. C++を使用してすべての要素が割り切れるような配列要素を見つけます

    要素が少ない配列Aがあるとします。すべての要素をそれで分割できるように、Aから要素を見つける必要があります。 Aが[15、21、69、33、3、72、81]のようであるとすると、すべての数値は3で割り切れる可能性があるため、要素は3になります。 この問題を解決するために、Aの最小の数値を取得し、すべての数値を最小の数値で除算できるかどうかを確認します。はいの場合は数値を返し、そうでない場合はfalseを返します。 例 #include<iostream> #include<algorithm> using namespace std; int getNumber(in