POJ 1005

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

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;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值