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

C++のストリームの速度とアップストリームとダウンストリームの時間の比率から人間の速度を見つけます


この問題では、Km / hでのストリームの速度と、アップストリームとダウンストリームの時間の比率を示す2つの値SとNが与えられます。私たちの仕事は、流れの速度と上流と下流の時間の比率から人間の速度を見つけることです。

問題を理解するために例を見てみましょう

入力

S = 5, N = 2

出力

15

ソリューションアプローチ

この問題の簡単な解決策は、漕ぎの問題の数式を使用することです。では、数式がどのように機能するか見てみましょう-

speed of man = x km/h
speed of stream = S km/h
speed of man downstream i.e. with stream = (x+S) km/h
speed of man upstream i.e. against stream = (x-S) km/h
Time to travel the distance downstream = T
Time to travel the distance upstream = n*T
Distance travelled upstream = (x - S)*n*T
Distance travelled upstream = (x + S)*T
As both the distances are same,
(x + S) * T = (x - S)*n*T
x + S = nx - nS
s + nS = nx - x
s*(n + 1) = x(n - 1)

$$ x =\ frac {S *(S + 1)} {(S-1)} $$

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
float calcManSpeed(float S, int n) {
   return ( S * (n + 1) / (n - 1) );
}
int main() {
   float S = 12;
   int n = 3;
   cout<<"The speed of man is "<<calcManSpeed(S, n)<<" km/hr";
   return 0;
}

出力

The speed of man is 24 km/hr

  1. O(n)時間とO(1)余分なスペースで重複を検索-C++で1を設定

    0からn-1までの数字のリストがあるとします。数は可能な限り何度でも繰り返すことができます。余分なスペースをとらずに繰り返し番号を見つける必要があります。 n =7の値で、リストが[5、2、3、5、1、6、2、3、4、5]のような場合。答えは5、2、3になります。 これを解決するには、次の手順に従う必要があります- リスト内の要素eごとに、次の手順を実行します- sign:=A[eの絶対値] 符号が正の場合は負にします それ以外の場合は繰り返しです。 例 #include<iostream> #include<cmath> using namespace st

  2. C++で指定されたGCDとLCMのペアを検索します

    このセクションでは、指定されたGCD値とLCM値を使用してペアの数を取得する方法を説明します。 GCDとLCMの値が2と12であると仮定します。これで、可能な数値のペアは(2、12)、(4、6)、(6、4)、および(12、2)になります。したがって、私たちのプログラムはペアの数を見つけます。それは4です。 この問題を解決するための手法を理解するためのアルゴリズムを見てみましょう。 アルゴリズム countPairs(gcd, lcm): Begin    if lcm is nit divisible by gcd, then       r