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