Fred Mapper考虑在Louisiana购买一些土地,并在这些土地上建造他的家。在对土地的调查中他发现,由于Mississippi河的侵蚀,Louisiana州的土地每年减少50平方英里。因为Fred准备在他所建的家中度过他的后半生,所以他要知道是否他的土地会因为河流的侵蚀而丧失。
在做了很多的研究后, Fred发现正在失去的土地构成一个半圆形(半圆如图所示)。这一半圆形是一个圆的一部分,圆心在坐标(0, 0),二等分这个圆的线是X轴, X轴的下方是河水。在第1年开始的时候,这一半圆的面积为0。
输入的第一行是一个正整数,表示有多少个测试用例(N)。后面有N行,每行给出笛卡尔坐标X和Y,表示Fred考虑购买的土地的位置。这些数是浮点数,以英里为单位。Y坐标非负。不会给出(0, 0)。
输出格式对每个输入的测试用例,输出一行。这一行的形式为“Property N: This property will begin eroding in year Z.”,其中N是测试用例编号(从1开始记数),Z表示他的土地在第Z年结束的时候要落到半圆形中(从1开始记数),Z必须是一个整数。在最后一个测试用例后,输出“END OF OUTPUT.”。
输入示例2 1.0 1.0 25.0 0.0输出示例
Property 1: This property will begin eroding in year 1. Property 2: This property will begin eroding in year 20. END OF OUTPUT.程序说明
根据输入的坐标确定正好该点被侵蚀的时候圆的面接,根据题目所说“每年减少50平方英里”来计算需要的时间,如果面积不是50的倍数则在计算结果的基础上加上一年即可完成题目。
代码如下#includeusing namespace std; int main() { int n; cin>>n; double PI=3.141592654; for(int i=1;i<=n;i++){ double a,b; int cnt=0; cin>>a>>b; double area=0.5*PI*(a*a+b*b); if((int)area%50!=0) cnt=area/50+1; else cnt=area/50; printf("Property %d: This property will begin eroding in year %d.n",i,cnt); } printf("END OF OUTPUT."); return 0; }
新手写博客,如有不足,欢迎评论区友好发言建议,谢谢!



