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

โปรแกรมหาการเริ่มต้นก่อนในการแข่งขันวิ่งใน C++


ในโจทย์นี้ เราได้รับจำนวนเต็มสองจำนวนที่ให้การเริ่มต้นก่อนที่ A ให้กับ B และ C ตามลำดับในการแข่งขันวิ่ง 100 เมตร งานของเราคือการสร้าง โปรแกรมหาการเริ่มต้นก่อนในการแข่งขันวิ่งใน C++

คำอธิบายโค้ด − ที่นี่มีการเริ่มต้นก่อนที่ A ให้กับ B และ A ให้กับ C ตามลำดับในการแข่งขัน 100 เมตร เราต้องหาการเริ่มต้นก่อนสัมพัทธ์ที่ B ให้กับ C ในการแข่งขัน 100 เมตร

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

อินพุต

20, 28

เอาต์พุต

90

คำอธิบาย

A ให้ B เริ่มต้นก่อน 15 เมตร หมายความว่า ถ้า A วิ่งครบ 100 เมตร B จะวิ่งได้ 80 เมตร

A ให้ C เริ่มต้นก่อน 28 เมตร หมายความว่า ถ้า A วิ่งครบ 100 เมตร C จะวิ่งได้ 72 เมตร

ตอนนี้ เมื่อ B วิ่งได้ 80 เมตร C จะวิ่งได้ 72 เมตร

ถ้า B วิ่งได้ 100 เมตร C จะวิ่งได้

(72 * 100) / 80 = 90

แนวทางแก้ปัญหา

เพื่อแก้ปัญหา ให้หาระยะทางที่ B และ C วิ่งได้เมื่อ A วิ่งครบ 100 เมตร จากนั้นคำนวณระยะทางที่ C วิ่งได้เมื่อ B วิ่งครบ 100 เมตร โดยใช้สูตร −

(C * 100) / B

โปรแกรมตัวอย่างการทำงานของวิธีแก้

ตัวอย่าง

#include <iostream> 
using namespace std; 

int CalcHeadStart(int B, int C) { 
    return ( 100 - ( ( (100 - C)*100 ) / (100 - B)) ) ; 
} 

int main() { 
    int B = 12, C = 34; 
    cout << "Head start in a race by B to C is " << CalcHeadStart(B, C) << " meters"; 
    return 0; 
}

เอาต์พุต

Head start in a race by B to C is 25 meters