题目
本题是中国海洋大学《C语言程序设计》2013-2014年A卷编程题第2题。
题目:
已知某游泳池的长度为50m,宽度为25m。某人游泳速度为0.8m每秒,步行速度为1.2m每秒。
编程求解从A点到B点间何处下水游到C点时间最短,输出该点距A点的长度x和所求最短时间y。
要求:
1.给出求解该问题的算法描述。(7分)
2.根据算法编写完整的求解程序(8分)
距离长度控制在0.1m
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
本题采用枚举法求解:
1.假设在AB边上行进x1后的D1点下水,历时t1 = x1 / 1.2;
2.计算从D1点到C点的距离和D1点到C点的历时t2 = sqrt(宽 * 宽 + (高 - x1) * (高 - x1)) / 0.8;
3.从A到B的间的D1点下水游到C点的时间为t1+t2.
最短时间如果存在肯定在0-50之间,设用time存储最小值,dx存储距A点的长度,最短时间算法描述:
预设x=0.0,time=32768,dx=0
while (x <= 50)
{
temp= x / 1.2 + sqrt(25 * 25 + (50 - x) * (50 - x)) / 0