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

C++でセットに追加できる最大差分要素


問​​題によると、集合arr [n]が与えられます。ここで、nは集合内の整数要素の数であり、タスクは、追加される最大の差要素を見つけることです。セット内の要素を取得します。つまり、違いは|a-b|の形式である必要があります。ここで、「a」と「b」は両方ともセットに含まれており、それらの差は最小であってはなりません。したがって、セットとは異なり、最大の差異の最大数をカウントします。例を使って問題とその解決策を理解しましょう。

入力 − set ={1、5}

出力 −セットに追加できる最大差要素は次のとおりです:1

説明 −セットには1つの違いしかありません。つまり| 1-5 | =4

入力 − set ={2、7、1、9}

出力 −最大差

セットに追加できる要素は次のとおりです。5

説明 −セットの違いは以下の通りです−

|2-7| = 5
|7-1| = 6
|1-9| = 8
|2-9| = 7
|7-9| = 2

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

  • 整数配列arr[n]を使用して、セットの値を格納します。

  • 関数maximum()で、ステップ3から6に従います。

  • 要素ele、temp、valを宣言し、それらの値をarr [0]

    に設定します。
  • iを1から配列のサイズまでループして、1ステップ増やします。

    • 配列内のすべての要素の公約数を見つけます。

    • tempまたはarr[i]の間の最大値としてtempを設定します。

  • totalをtemp/valとして設定し、maxをtotalとsizeの差として設定します。

  • 返品して最大印刷

#include <bits/stdc++.h>
using namespace std;
//function to find maximum difference element
int maximum(int arr[], int size){
   int ele = arr[0];
   int val = ele;
   int temp = ele;
   for (int i = 1; i < size; i++){
      val = __gcd(val, arr[i]);
      temp = max(temp, arr[i]);
   }
   int total = temp / val;
   int max = total - size;
   return max;
}
int main(){
   int arr[] = { 2, 7, 1, 9};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Maximum difference elements that can added to a set is: "<<maximum(arr, size);
   return 0;
}

出力

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

Maximum difference elements that can added to a set is: 5

  1. C++でNセグメントを使用して7セグメントディスプレイに表示できる最大数

    与えられたタスクは、7セグメントディスプレイのant番号でNセグメントを使用して表示できる最大数を見つけることです。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 − n =5 出力 − 71 説明 −最大数は7セグメントディスプレイに次のように表示されます- 入力 − n =6 出力 − 111 以下のプログラムで使用されるアプローチは次のとおりです 次の状況は3つのケースに分けることができます- ケース1 − Nが0または1の場合、数値を表示することはできません。 ケース2 − Nが奇数の場合。その場合、奇数

  2. C++でN*Nチェス盤に配置できる最大のビショップ

    チェス盤のサイズを示す入力Nが与えられます。ここでのタスクは、Nの任意の値について、2人のビショップが互いに攻撃できないようにNXNチェス盤に配置できるビショップの数を見つけることです。例を挙げて理解しましょう。 入力 − n =2 出力 − N * Nチェス盤に配置できる最大のビショップ− 2(上記のように) 説明 −上に示したように、矛盾しない位置は司教が配置されている場所だけです。せいぜい2X2チェス盤のビショップ。 入力 − n =5 出力 − N * Nチェス盤に配置できる最大ビショップ:8(上記のように) 以下のプログラムで使用されているアプローチは次のとおりで