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

C ++の場合と同様に、除算または考慮のいずれかを選択した場合の最大値


このチュートリアルでは、分割するか、そのまま検討するかを選択して、最大の価値を見つけるプログラムについて説明します。

このために、整数値が提供されます。私たちのタスクは、数値を再帰的に4つの部分に分割するか、指定された関数F(n)=max((F(n / 2)+ F(n / 3)+ F(n / 4)+ F(n / 5))、n)。

#include <bits/stdc++.h>
using namespace std;
//calculating the maximum result
int findMaximum(int size) {
   int term[size + 1];
   term[0] = 0;
   term[1] = 1;
   int i=2;
   while(i <= size) {
      term[i] = max(i, (term[i / 2] + term[i / 3] + term[i / 4] + term[i / 5]));
      i = i+1;
   }
   return term[size];
}
int main() {
   int number = 37;
   cout << "Maximum possible sum: " << findMaximum(number)<< endl;
   return 0;
}

出力

Maximum possible sum: 57

  1. C++の二分探索木で最小値のノードを見つけます

    1つの二分探索木があるとします。二分探索木で最小要素を見つける必要があります。したがって、BSTが以下のような場合- 最小要素は1になります。 左のサブツリーは常に小さい要素を保持していることがわかっています。したがって、左がnullになるまで左のサブツリーを何度もトラバースすると、最小の要素を見つけることができます。 例 #include<iostream> using namespace std; class node{    public:       node *left;      

  2. Xとの絶対差がC++で最大値を与えるノードを見つけます

    ツリーがあり、すべてのノードの重みと整数xがあるとします。 | weight [i]--x|となるようなノードiを見つける必要があります。最小です。グラフが以下のようで、x =15 出力は3になります。ノードごとに次のようになります ノード1、| 5 – 15 | =10 ノード2、| 10 – 15 | =5 ノード3、| 11 – 15 | =4 ノード4、| 8 – 15 | =7 ノード5、| 6 – 15 | =9 アイデアは単純です。ツリーでDFSを実行し、ノードの追跡を行います。ノードのxとの重み付き絶対差が最小値を示します 例 #include