Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm tốc độ của con người từ tốc độ của luồng và tỷ lệ thời gian với luồng lên và xuống trong C ++

Trong bài toán này, chúng tôi nhận được hai giá trị S và N biểu thị tốc độ của dòng theo Km / h và tỷ lệ thời gian với dòng lên và xuống. Nhiệm vụ của chúng tôi là Tìm tốc độ của con người từ tốc độ của dòng chảy và tỷ lệ thời gian với các dòng lên và xuống.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

S = 5, N = 2

Đầu ra

15

Phương pháp tiếp cận giải pháp

Một giải pháp đơn giản cho vấn đề là sử dụng công thức toán học cho các bài toán chèo thuyền. Vì vậy, hãy xem công thức sẽ hoạt động như thế nào -

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)} $$

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

#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;
}

Đầu ra

The speed of man is 24 km/hr