POJ1005 I Think I Need a Houseboat
题目来源:http://poj.org/problem?id=1005
题目大意:
Fred Mapper考虑在路易斯安那州买一块地来建房子。在调查的过程中,他得知由于密西西比河的侵蚀,路易斯安那州的土地正在以50平方英里的速度退缩。Fred希望能在他新建的房子中度过余生,所以他需要知道他买的土地是否会被侵蚀掉。
Fred做了一些调查后得知,正在被侵蚀的土地形成一个半圆形,半圆以(0,0)为圆心,被X轴平分,X轴以下为水面。半圆在第1年时面积为0.(半圆如图所示)
输入:第一行为一个正整数表示有多少个数据集(N)。接下来的N行每行含一个X和一个Y表示Fred在考虑的土地位置的笛卡尔坐标。X和Y是以英里为单位的浮点数,Y是非负数,不考虑(0,0)点。(给出的坐标不会恰好在半圆边界上。)
输出:对于每一个数据集,输出占单独一行。输出形式为:“Property N: This property will begin eroding in year Z.”,其中,N为数据集编号(从1开始数),Z为该地会于Z年后(AT THE END OF YEAR Z)被侵蚀。输出的最后加上“END OF OUTPUT.”
Sample Input
2 1.0 1.0 25.0 0.0
Sample Output
Property 1: This property will begin eroding in year 1. Property 2: This property will begin eroding in year 20. END OF OUTPUT.
题目的实质可以用如下方程描述:
Pi * (x * X + Y * Y) / 2 <= 50 * (t - 1), 求整数t.
1 ////////////////////////////////////////////////////////////////////////// 2 // POJ1005 I Think I Need a Houseboat 3 // Memory: 284K Time: 0MS 4 // Language: C++ Result: Accepted 5 ////////////////////////////////////////////////////////////////////////// 6 7 #include <iostream> 8 9 using namespace std; 10 11 int main(void) 12 { 13 int N; 14 cin >> N; 15 for (int i = 0; i < N; i++) { 16 double x, y; 17 cin >> x >> y; 18 double tf = 3.14159265 * (x * x + y * y) / 100; 19 int t = tf + 1; 20 cout << "Property "<< i + 1 << ": This property will begin eroding in year " << t << '.' << endl; 21 } 22 cout << "END OF OUTPUT." << endl; 23 system("pause"); 24 }