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

合計がsである要素の可能な最大中央値を見つけるためのC++プログラム


nとsの2つの数があるとします。要素の合計がsと同じになるように、n個の非負の要素の配列の可能な最大中央値を見つける必要があります。

したがって、入力がn=3のような場合。 s =5の場合、出力は2になります。これは、配列[1、2、2]の場合、合計が5で、中央値が2であるためです。

ステップ

これを解決するには、次の手順に従います-

m := floor of (n / 2) + 1
return floor of (s / m)

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;

int solve(int n, int s) {
   int m = n / 2 + 1;
   return s / m;
}
int main() {
   int n = 3;
   int s = 5;
   cout << solve(n, s) << endl;
}

入力

3, 5

出力

2

  1. C++のバイナリツリーで最大レベルの合計を見つける

    この問題では、正と負の値を持つ二分木が与えられます。私たちのタスクは、バイナリツリーで最大レベルの合計を見つけることです。 問題の説明: 二分木があります。二分木のすべてのレベルの合計を見つけて、それらの最大値を返します。 問題を理解するために例を見てみましょう 入力: 出力: 5 説明: レベル1:3の要素の合計 レベル2の要素の合計:-3 + 4 =1 レベル3の要素の合計:5 --1 + 6-5 =5 ソリューションアプローチ この問題を解決するには、レベル順トラバーサルを使用してツリーをトラバースする必要があります。そして、レベルごとに、合計

  2. 要素が2つの異なる配列に格納されている要素の中央値を見つけるためのC++プログラム

    要素が2つの異なる配列に格納されている要素の中央値を見つけるために、C++プログラムを検討します。 アルゴリズム Begin Function Median()には、2つの配列a1 []、a2 []、およびn =引数としての配列の要素の数があります。範囲0〜 n、i =nの場合は実行し、n1:=n2 n2:=a2[0]はループを中断します。そうでない場合はj=nの場合、n1:=n2 n2:=a1[0]はa1[i] サンプルコード #include #include usingnamespace std; int Median(int a1 []、int a2 []、int n){int