C++の水タンクにn個の固体ボールを浸したときに水タンクがオーバーフローするかどうかをチェックするプログラム
円筒形の水タンクの半径と高さを考えると、タンク内の水の半径と量を含む「n」個の球形の固体ボールとタスクは、ボールがタンクに浸されたときにタンクがオーバーフローするかどうかを確認することです。
体積を計算する式
シリンダー
3.14 * r * r * h
ここで、rはタンクの半径、hはタンクの高さです
球
(4/3) * 3.14 * R * R * R
ここで、Rは球球の半径です
入力
tank_height = 5 tank_radius = 2 water_volume = 10 capacity = 10 ball_radius = 2
出力
It will overflow
以下で使用するアプローチは次のとおりです
-
タンクの半径、タンクの高さ、浸漬するボールの数、せん断の半径など、指定された寸法を入力します
-
式を適用してタンクの容量(容量)を計算します
-
式を適用して球の体積を計算します
-
ボールが水タンクに浸されるたびに水量が増えるので、水の量を計算します。
-
水の量と球の量を足して総量を計算します
-
状態を確認して、タンクがオーバーフローするかどうかを確認します
-
総容量が容量よりも多い場合、タンクはオーバーフローします
-
総容量が容量より少ない場合、タンクはオーバーフローしません
-
アルゴリズム
Step 1→ declare function to check whether tank will overflow or not void overflow(int H, int r, int h, int N, int R) declare float tank_cap = 3.14 * r * r * H declare float water_vol = 3.14 * r * r * h declare float balls_vol = N * (4 / 3) * 3.14 * R * R * R declare float vol = water_vol + balls_vol IF (vol > tank_cap) Print it will overflow End Else Print No it will not overflow End Step 2→ In main() Declare int tank_height = 5, tank_radius = 2, water_volume = 10, capacity = 10, ball_radius = 2 call overflow(tank_height, tank_radius, water_volume, capacity, ball_radius)
例
#include <bits/stdc++.h> using namespace std; //check whether tank will overflow or not void overflow(int H, int r, int h, int N, int R){ float tank_cap = 3.14 * r * r * H; float water_vol = 3.14 * r * r * h; float balls_vol = N * (4 / 3) * 3.14 * R * R * R; float vol = water_vol + balls_vol; if (vol > tank_cap){ cout<<"it will overflow"; } else{ cout<<"No it will not overflow"; } } int main(){ int tank_height = 5, tank_radius = 2, water_volume = 10, capacity = 10, ball_radius = 2; overflow(tank_height, tank_radius, water_volume, capacity, ball_radius); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
It will overflow
-
BFSを使用して無向グラフの接続性をチェックするC++プログラム
グラフの接続性を確認するために、トラバーサルアルゴリズムを使用してすべてのノードをトラバースしようとします。トラバーサルの完了後、アクセスされていないノードがある場合、グラフは接続されていません。 無向グラフの場合、1つのノードを選択し、そこからトラバースします。 この場合、トラバーサルアルゴリズムは再帰的なBFSトラバーサルです。 入力 −グラフの隣接行列 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0
-
DFSを使用して有向グラフの接続性をチェックするC++プログラム
グラフの接続性を確認するために、トラバーサルアルゴリズムを使用してすべてのノードをトラバースしようとします。トラバーサルの完了後、アクセスされていないノードがある場合、グラフは接続されていません。 有向グラフの場合、接続を確認するためにすべてのノードからトラバースを開始します。 1つのエッジに外向きのエッジのみがあり、内向きのエッジがない場合があるため、他の開始ノードからノードにアクセスできなくなります。 この場合、トラバーサルアルゴリズムは再帰的なDFSトラバーサルです。 入力 :グラフの隣接行列 0 1 0 0 0 0 0 1 0