C++でセットに追加できる最大差分要素
問題によると、集合arr [n]が与えられます。ここで、nは集合内の整数要素の数であり、タスクは、追加される最大の差要素を見つけることです。セット内の要素を取得します。つまり、違いは|a-b|の形式である必要があります。ここで、「a」と「b」は両方ともセットに含まれており、それらの差は最小であってはなりません。したがって、セットとは異なり、最大の差異の最大数をカウントします。例を使って問題とその解決策を理解しましょう。
入力 − set ={1、5}
出力 −セットに追加できる最大差要素は次のとおりです:1
入力 − 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
-
C++でNセグメントを使用して7セグメントディスプレイに表示できる最大数
与えられたタスクは、7セグメントディスプレイのant番号でNセグメントを使用して表示できる最大数を見つけることです。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 − n =5 出力 − 71 説明 −最大数は7セグメントディスプレイに次のように表示されます- 入力 − n =6 出力 − 111 以下のプログラムで使用されるアプローチは次のとおりです 次の状況は3つのケースに分けることができます- ケース1 − Nが0または1の場合、数値を表示することはできません。 ケース2 − Nが奇数の場合。その場合、奇数
-
C++でN*Nチェス盤に配置できる最大のビショップ
チェス盤のサイズを示す入力Nが与えられます。ここでのタスクは、Nの任意の値について、2人のビショップが互いに攻撃できないようにNXNチェス盤に配置できるビショップの数を見つけることです。例を挙げて理解しましょう。 入力 − n =2 出力 − N * Nチェス盤に配置できる最大のビショップ− 2(上記のように) 説明 −上に示したように、矛盾しない位置は司教が配置されている場所だけです。せいぜい2X2チェス盤のビショップ。 入力 − n =5 出力 − N * Nチェス盤に配置できる最大ビショップ:8(上記のように) 以下のプログラムで使用されているアプローチは次のとおりで