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

C++で配列内の除算可能なペアをカウントします


整数要素を含む任意のサイズの配列が与えられます。タスクは、ペアの1つの要素がペアの別の要素を分割するように、配列内のペアの数を計算することです。

配列は、同じタイプの要素の固定サイズの順次コレクションを格納できる一種のデータ構造です。配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。

Input − int arr[] = {1, 2, 3, 6}
Output − count is 4

説明 −(1,2)、(1,3)、(1,6)、および(3,6)は、ペアの1つの要素が別の要素を分割するペアです。1は任意の数を分割でき、3は6を分割できます。カウントは4です。

Input − int arr[] = {2, 5, 10}
Output − count is 2

説明 −(2、10)と(5,10)は、ペアの1つの要素が別の要素を分割するペアです。2は10を分割でき、5は10を分割できます。したがって、カウントは2です。

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

  • 配列を作成します。たとえば、arr []

  • 配列内の要素ごとに整数値を返すlength()関数を使用して、配列の長さを計算します。

  • 配列にのみ存在する要素の数を格納する一時変数を取ります。

  • iが0で、iが配列のサイズよりも小さい場合のループを開始します

  • ループ内で、jがサイズより小さくなるまでjからi+1で別のループを開始します

  • ループ内で、arr [i]%arr [j] =0またはarr[j]%arr [i] =0かどうかを確認してから、カウントをインクリメントします

  • カウントを返す

  • 結果を印刷します。

#include <iostream>
using namespace std;
int divisibles(int a[], int size){
   int result = 0;
   // Iterating through all pairs
   for (int i=0; i<size; i++){
      for (int j=i+1; j<size; j++){
         if (a[i] % a[j] == 0 || a[j] % a[i] == 0){
            result++;
         }
      }
   }
   return result;
}
int main(){
   int a[] = {1, 4, 7, 8, 9};
   int size = sizeof(a) / sizeof(a[0]);
   cout <<"count is " <<divisibles(a, size);
   return 0;
}

出力

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

count is 5

  1. C++で配列を反転します

    この記事では、C ++コーディングを使用して、配列を降順で反転する方法を紹介しています。この場合、ループ内で配列をトラバースすることにより、最高のインデックスが最低のインデックスにスワップされます。 例 #include <iostream> #include <algorithm> using namespace std; void reverseArray(int arr[], int n){    for (int low = 0, high = n - 1; low < high; low++, high--){   &nbs

  2. 配列内の反転をカウントするC++プログラム

    カウント反転とは、配列をソートするために必要なスイッチの数を意味します。配列がソートされている場合、反転カウント=0。反転カウント=配列が逆の順序でソートされた場合の最大値。 配列内の反転をカウントするC++プログラムを開発しましょう。 アルゴリズム Begin    Function CountInversionArray has arguments a[], n = number of elements.    initialize counter c := 0    for i in range 0 to n-1, do &n