POJ1005I Think I Need a Houseboat

转载请注明出处:優YoU    http://user.qzone.qq.com/289065406/blog/1309404342

 

问题描述:

Fred Mapper 正在考虑在路易斯安那州购买一些土地来建他自己的房子。在研究土地的过程中,他发现,路易斯安那州的土地每年都会被密西西比河侵蚀掉 50 平方里。因为 Fred 希望在这个房子里度过余生,所以他需要知道他的那些土地是否会被侵蚀掉。

在做了更多的调查之后,Fred 发现这些土地是以半圆的形状被侵蚀的。这个半圆所对应的正圆的圆心在坐标原点 (0, 0), 坐标轴 x 轴将这个圆切成两半。在 x 轴下方的区域是河流。在第一年刚开始的时候,这个半圆的面积是 0.(半圆如图所示。)


红色为侵蚀方向蓝色为河水

 

问输入Fred Mapper家的坐标(X,Y),他家所在的位置什么时候被河水侵蚀。

 

解题思路:

Fred Mapper的家(X,Y)到侵蚀中心(00)的距离就是侵蚀半径R

那么Area = 1/2*pi*R 就是侵蚀到Fred Mapper家时的侵蚀面积

而侵蚀速度为每年50

那么侵蚀到Fred Mapper家需要 RestYear = Area/50 = pi*R/100

又要求从第一年开始计算,最后一年不够一年按一年计算,那么RestYear+1取整就可以了。

 1 //Memory Time
2 //260K 0MS
3
4 #include<iostream>
5 using namespace std;
6
7 const double pi=3.141592654;
8
9 int main(void)
10 {
11 int test;
12 cin>>test;
13 for(int t=1;t<=test;t++)
14 {
15 double x,y;
16 cin>>x>>y;
17
18 double Area=pi*(x*x+y*y);
19 int RestYear=(int)(Area/100.0+1.0);
20 cout<<"Property "<<t<<": This property will begin eroding in year "<<RestYear<<'.'<<endl;
21 }
22 cout<<"END OF OUTPUT."<<endl;
23 return 0;
24 }
[ EXP技术分享博客 ] 版权所有,转载请注明出处: http://exp-blog.com
原文地址:https://www.cnblogs.com/lyy289065406/p/2120467.html