POJ 1005

写个水题,很水,但是一开始应该很多人理解错题目的意思而做了很久

POJ 1005 I Think I Need a Houseboat

POJ 1005_第1张图片

大意就是说,Fred想建一栋房子过自己的退休生活,但是他发现他所在的路易斯安那州的土地每年都会以50平方英里的速度被侵蚀,而且呈图途中的半圆形,以原点为起点。那么Fred给出建房子的坐标,想计算出多少年之后他的房子会被侵蚀。

一开始呢,我打算算半径然后算出增长速度,后来一想,因为增长的面积是固定的,对于圆来说,增长面积固定了,半径的增长可不一定啊,s = πr²。瞬间懵逼,想了想,难道直接以大除小? 算算要增长多少年? 试了一下,果然是这样。

利用x 和 y算出房屋所在的园的半径,记得要除以二,因为是半圆。再除以50就还可以得出年分了。这里可以写一个判定,如果算出来的面积小于50,那就直接输出一年就可以了。

附上AC代码

#include
#include

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;
}

你可能感兴趣的:(POJ)