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

C++で関係演算子を使用せずに配列の最大値を検索する


この問題では、正の値で構成されるサイズnの配列arr[]が与えられます。私たちのタスクは、関係演算子を使用せずに配列の最大値を見つけることです。

問題を理解するために例を見てみましょう

入力: arr [] ={5、1、6、7、8、2}

出力: 8

ソリューションアプローチ

論理演算子を使用せずに値を比較する必要があるためです。このために、繰り返し減算を実行する必要があります。長く続く数は大きい方になります。

ゼロになるまで、すべての値を1ずつ減らします。配列の最初の2つの値から始めて、両方の最大値を見つけます。次に、残りの配列値を配列の最大要素と比較する必要があります。これを使用して、すべての要素の最大値を見つけます。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;

int returnMax(int x, int y) {
   
   int c = 0;

   while(x || y)
   {
      if(x)
         x--;
      if(y)
         y--;
      c++;
   }
   return c;
}

int findMaxEle(int A[], int N) {

   int maxVal = A[0];
   
   for (int i = N-1; i; i--)
      maxVal = returnMax(maxVal, A[i]);
   
   return maxVal;
}

int main() {
   
   int A[] = {5, 1, 6, 7 , 8, 2};
   int N = sizeof(A) / sizeof(A[0]);
   cout<<"The maximum element of the array is "<<findMaxEle(A, N);
   return 0;
}

出力

The maximum element of the array is 8>

  1. C++の配列で最大GCDのペアを検索します

    正の整数の配列があるとします。私たちのタスクは、GCD値が最大である配列から整数のペアを見つけることです。 A ={1、2、3、4、5}とすると、出力は2になります。ペア(2、4)にはGCD 2があり、他のGCD値は2未満です。 この問題を解決するために、各要素の除数の数を格納するためのカウント配列を維持します。除数を数えるプロセスには、O(sqrt(arr [i]))の時間がかかります。全体をトラバースした後、最後のインデックスから最初のインデックスまでカウント配列をトラバースできます。要素が1より大きい値が見つかった場合、これは2つの要素の約数であり、最大GCDでもあることを意味します。

  2. STLを使用したC++の配列製品

    これは、配列製品を見つけるためのC++プログラムの例です。 アルゴリズム Begin Initialize the values of array. Call used defined function accumulate to return the product of array. Print the solution. End. サンプルコード #include <iostream> #include <numeric> using namespace std; int ProductOfArray(int p[], int n) { &nbs