C ++プログラムの場合と同様に、除算または考慮のいずれかを選択した場合の最大値
この問題では、数値Nが与えられます。私たちのタスクは、C ++で分割するか、炎と見なすかを選択して、最大値を見つけるプログラムを作成することです。
問題の説明
最大値を見つけるには、値をそのまま取得するか、除算して最大値を取得することで、任意の2つの値を考慮することができます。値は、 F(N / 2)+ F(N / 3)+ F(N / 4)+ F(N / 5) 。
問題を理解するために例を見てみましょう
入力 :N =8
出力 :9
説明
F(8)=F(8/2)+ F(8/3)+ F(8/4)+ F(8/5)=F(4)+ F(2)+ F(2)+ F( 1)=4 + 2 + 2 + 1 =9
ソリューションアプローチ
アイデアは、除算の値に対して同じ関数を複数回呼び出すことです。このために、動的計画法の概念を使用し、0からNまでのF(i)の値を解くための配列を作成し、解を見つけるためにそれらを拒否しました。
例
#include <iostream> using namespace std; int calcMaximumValue(int N) { int F[N + 1]; int divVal = 0; F[0] = 0; F[1] = 1; for (int i = 2; i <= N; i++) { divVal = ( F[i / 2] + F[i / 3] + F[i / 4] + F[i / 5] ); if(divVal > i) F[i] = divVal; else F[i] = i; } return F[N]; } int main() { int N = 8; cout<<"Maximum value with the choice of either dividing or considering as it is = "<<calcMaximumValue(N); return 0; }
出力
Maximum value with the choice of either dividing or considering as it is = 9
-
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
-
sin(x)およびcos(x)の値を計算するC++プログラム
入力を角度として指定すると、指定した角度に対応するsin(x)とcos(x)の値を計算し、結果を表示することがタスクになります。 Sin(x)の場合 Sin(x)は、x角度の値を計算するために使用される三角関数です。 式 $$ \ sin(x)=\ displaystyle \ sum \ Limits_ {k =0} ^ \ infty \ frac {(-1)^ {k}} {(2k + 1)!} x ^ {2k + 1} $ $ Cos(x)の場合 Cos(x)は、x角度の値を計算するために使用される三角関数です。 式 $$ \ cos(x)=\ displays