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