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

arr [j] – arr [i] + arr [l] – arr [k]を最大化し、C++でi

整数の配列が与えられます。目標は、式の値を最大化することです-

arr [j] -arr [i] + arr [l] -arr [k]; i

これを行うには、すべての要素をトラバースして、式の値を計算します。これまでに最大の結果が見つかった場合は、保存して最後に返します。

入力

arr[]= { 1,2,3,4 }

出力

Maximum value for above expression is : 2

説明 − i の場合

arr [j] -arr [i] + arr [l] -arr [k] =2-1 + 4-3 =1 + 1 =2

入力

arr[]= { 5,5,5,5,5 }

出力

Maximum value for above expression is : 0

説明 − i の任意の値の場合

arr [j] -arr [i] + arr [l] -arr [k] =5-5 + 5-5 =0

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

  • 整数配列a[]は数値を格納します。

  • 関数maximizeSum(int arr []、int n)は、配列とその長さnを入力として受け取り、i

  • 変数sumは、arr [j]-arr[i]とarr[l]-arr[k]の合計を格納するために使用されます。

  • maxx =arr[0]を初期最大合計として初期化します。

  • 配列をi=0、j =1、k =2、l =3からiまでトラバースします。

  • i、j、k、lの各インデックスについて、arr [j] -arr [i] + arr [l] -arr [k]を計算し、合計に格納します

  • 現在の合計>=maxxがmaxxを更新する場合。

  • 最後に、必要な結果としてmaxxを返します。

#include <bits/stdc++.h>
using namespace std;
// function to maximize the sum of selected numbers
int maximizeSum(int arr[], int n) {
   int sum=0;
   int maxx=arr[0];
   for(int i=0;i<n-3;i++)
      for(int j=i+1;j<n-2;j++)
         for(int k=j+1;k<n-1;k++)
         for(int l=k+1;l<n;l++){
      sum=arr[j]-arr[i]+arr[l]-arr[k];
      if(sum>=maxx)
         maxx=sum;
   }
   return maxx;
}
int main(){
   int a[] = {5, 3, 9, 2, 20};
   int n = sizeof(a) / sizeof(a[0]);
   cout <<"Maximized value is :"<< maximizeSum(a, n);
   return 0;
}

出力

Maximized value is :24

  1. C++でa+b + c=dとなるような配列で最大のdを見つけます

    整数のセットがあるとします。数「d」を見つける必要があります。ここで、d =a + b + cであり、最大化(a + b + c)する必要があり、すべてのa、b、c、およびdがセットに存在します。セットには、少なくとも1つの要素、最大で1000の要素が含まれます。各要素は有限数になります。セットが{2、3、5、7、12}の場合、12が最大です。これは2+3 + 7で表すことができます この問題を解決するために、ハッシュ手法を使用できます。 (a + b)のすべてのペアの合計をハッシュテーブルに格納し、次にすべてのペア(c、d)をトラバースし、検索(d-c)がテーブルに存在するかどうかを確認し

  2. n!となるようなxの最大値を見つけます。 %(k ^ x)=0(C ++の場合)

    2つの整数nとkがあるとします。 n!のようなxの最大値を見つける必要があります。 mod(k ^ x)=0。したがって、n =5、k =2の場合、出力は3になります。Asn! =120、xの値が異なると、次のようになります- 120 mod 2 ^ 0 =0、120 mod 2 ^ 1 =0、120 mod 2 ^ 2 =0、120 mod 2 ^ 3 =0、120 mod 2 ^ 4 =8、120 mod 2 ^ 5 =24、120 mod 2 ^ 6 =56、120 mod 2 ^ 7=120。x=3の最大値として、結果は0であるため、出力は3です。 これを解決するには、次の手順に従