信奥一本通1073:救援
思路分析
1、根据题意以及给出的输入输出画出如上坐标分析图,x坐标30,y坐标40,它们跟从大本营到屋顶之间刚好形成了一个直角三角形,而且通过坐标就很容易联想到勾股定理,已知三角形两条边就可以求出第三边。
勾股定理如下:
$a^{2}+b^{2}=c^{2}$
a边平方+b边平方=C边平方
$\sqrt{c}开根可得c边长$
将x坐标和y坐标带入公式可得到从大本营到屋顶之间的总路程平方,接着将总路程平方进行开根号即可得到c边的大小。
2、得到总路程就可以求得路上花费的时间:c/50=路上时间
根据题意每人上船需要花费1分钟,下船需要花费0.5分钟,所以
路上时间+上船时间+下船时间=救援该屋顶的总时间
3、所以根据题意,输入需要救援的屋顶,然后把去该屋顶救援所花的时间计算出来,再输入下一个救援屋顶,依次类推。当把所有救援屋顶都输入完毕之后也是救援总时间计算出来之时。最后输出总救援时间即可。
1 #include//C++库文件 2 #include//数学库文件 34 //命名空间 5 using namespace std; 6 //主函数 7 int main() 8 { 9 /*n屋顶,x屋顶x坐标,y屋顶y坐标,10 z从大本营到屋顶的距离,r人数,11 fen从起点到屋顶上船下船的时间,ztime总时间*/12 double n,x,y,z,r,fen,ztime=0;13 cin>>n;//输入救援屋顶数14 for(int i=1;i>x>>y>>r;//循环输入要救援的屋顶x坐标,y坐标,r人数16 17 z=x*x+y*y;//根据勾股定理求得从大本营到屋顶的总路程平方18 19 z=sqrt(z);//开根总路程平方获得从大本营到屋顶的路程20 21 fen=2*(z/50)+r+r*0.5;//计算去和回、上船、下船的时间22 23 ztime=ztime+fen;//加上每个屋顶救援用的时间24 }25 cout
页:
[1]