写个水题,很水,但是一开始应该很多人理解错题目的意思而做了很久
POJ 1005 I Think I Need a Houseboat
大意就是说,Fred想建一栋房子过自己的退休生活,但是他发现他所在的路易斯安那州的土地每年都会以50平方英里的速度被侵蚀,而且呈图途中的半圆形,以原点为起点。那么Fred给出建房子的坐标,想计算出多少年之后他的房子会被侵蚀。
一开始呢,我打算算半径然后算出增长速度,后来一想,因为增长的面积是固定的,对于圆来说,增长面积固定了,半径的增长可不一定啊,s = πr²。瞬间懵逼,想了想,难道直接以大除小? 算算要增长多少年? 试了一下,果然是这样。
利用x 和 y算出房屋所在的园的半径,记得要除以二,因为是半圆。再除以50就还可以得出年分了。这里可以写一个判定,如果算出来的面积小于50,那就直接输出一年就可以了。
附上AC代码
#include<iostream>
#include<cmath>
using namespace std;
#define Pi 3.1415926535
int main() {
int n;
int mark = 1;
cin >> n;
while (n--) {
double x, y;
cin >> x >> y;
double r1 = sqrt((x * x) + (y * y));
double s1 = (Pi * r1 * r1) / 2;
int t;
if (s1 < 50) {
t = 1;
}
else {
t = (int)(s1 / 50) + 1;
}
cout << "Property " << mark << ": This property will begin eroding in year " << t << "." << endl;
mark++;
}
cout << "END OF OUTPUT." << endl;
//system("pause");
return 0;
}