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

C++の特定の混合物で目標比率を達成するために追加する量を見つけます


サイズXのコンテナがあるとします。このコンテナには水と他の液体の混合物があり、その混合物にはW%の水が含まれています。 Y%に対する水の比率を増やすには、いくつの水を追加する必要があるかを見つける必要がありますか? X =125、W =20、Y =25の場合、出力は8.33リットルになります。

前の混合物に一定量の水を追加する必要があるとすると、新しい量はX + Aになります。したがって、混合物中の水の量はこの式に従います。

Old Amount + A =((W%of X)+ A)

また、混合物中の水の量=新しい混合物中の水の新しいパーセンテージ。つまり、これは(X + A)のY%です。

したがって、次のように表すことができます。− Y%of(X + A)=(W%of X)+ A

A =[X *(Y-W)] / [100-Y]

#include<iostream>
using namespace std;
float getWaterAmount(float X, float W, float Y) {
   return (X * (Y - W)) / (100 - Y);
}
int main() {
   float X = 125, W = 20, Y = 25;
   cout << "We need "<< getWaterAmount(X, W, Y) << " liters of water";
}

出力

We need 8.33333 liters of water

  1. C++で特定のキーの次の右ノードを検索します

    この問題では、バイナリツリーBTとキー値が与えられます。私たちのタスクは、特定のキーの次の正しいノードを見つけることです。 バイナリツリーは、データストレージの目的で使用される特別なデータ構造です。 問題を理解するために例を見てみましょう 入力 key = 4 出力 5 説明 ノード4の隣の要素は5です。 ソリューションアプローチ この問題の簡単な解決策は、レベル順トラバーサルを使用してバイナリツリーをトラバースすることです。そして、与えられたキー値について、トラバーサルの同じレベルでノードの隣にノードが存在するかどうかを確認します。はいの場合は次のノードを返し、そうでない場合

  2. C++のバイナリツリーで特定のノードのミラーを検索します

    この問題では、二分木が与えられます。私たちのタスクは、バイナリツリーで特定のノードのミラーを見つけることです。ノードが与えられ、反対側のサブツリーでそのノードの鏡像を見つけます。 問題を理解するために例を見てみましょう 入力 出力 mirror of B is E. ソリューションアプローチ この問題を解決する簡単な解決策の1つは、左のサブツリーと右のサブツリーに2つのポインターを使用して、ルートからの再帰を使用することです。次に、ターゲット値について、ミラーが見つかった場合はミラーを返し、それ以外の場合は他のノードを繰り返します。 ソリューションの動作を説明するプログラム 例