Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาความเร็วของคนจากความเร็วน้ำและอัตราส่วนเวลาขึ้นลงน้ำใน C++

ในปัญหานี้ เราได้รับค่าสองค่า S และ N ซึ่งแทนความเร็วน้ำใน กม./ชม. และอัตราส่วนของเวลาขึ้นและลงน้ำ งานของเราคือ หาความเร็วของคนจากความเร็วน้ำและอัตราส่วนเวลาขึ้นลงน้ำ

มาดูตัวอย่างเพื่อเข้าใจปัญหา

Input

S = 5, N = 2

Output

15

วิธีแก้ปัญหา

วิธีแก้ที่ง่ายคือใช้สูตรคณิตศาสตร์สำหรับปัญหาการขี่เรือ ลองดูว่าสูตรทำงานอย่างไร

ความเร็วคน = x กม./ชม. 
ความเร็วน้ำ = S กม./ชม. 
ความเร็วคนลงน้ำ (ตามน้ำ) = (x+S) กม./ชม. 
ความเร็วคนขึ้นน้ำ (ต้านน้ำ) = (x-S) กม./ชม. 
เวลาเดินทางระยะทางลงน้ำ = T 
เวลาเดินทางระยะทางขึ้นน้ำ = n*T 
ระยะทางขึ้นน้ำ = (x - S)*n*T 
ระยะทางลงน้ำ = (x + S)*T 
เนื่องจากระยะทางเท่ากัน (x + S) * T = (x - S)*n*T 
x + S = nx - nS 
s + nS = nx - x 
s*(n + 1) = x(n - 1)

$$x=\frac{S*(n+1)}{(n-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