C++ Zoj1049 I Think I Need a Houseboat

题目大意:

       判断什么时候50*z(z为年数)形成的半圆,能把给出的(x, y)包含进去,就是(x,y)坐标什么时候能在这个半圆内。

       求出这个z

思路:

         求以(x,y)-(0,0)为半径,(0,0)为圆心的半圆的面积,然后除以50,向上取整ceil,得到的就是z

#include <iostream>
#include <cmath>
using namespace std;

const double PI = acos(double(-1));

int main(int argc, const char * argv[]) {
    double x, y, area; // 存储x,y坐标
    int n, z, kcase = 1; // n存储测试组数,z存储年数, kcase跟踪测试组数
    
    cin >> n;
    while(n--) { // 测试组数
        cin >> x >> y;
        // 半圆面积公式:s=1/2 * PI * r * r;(r * r = x * x + y * y)
        area = PI * (x * x + y * y) / 2;
        z = ceil(area / 50); // 向上取整
        cout << "Property " << kcase << ": This property will begin eroding in year " << z << "." << endl;
        kcase++;
    }
    return 0;
}

运行结果:

猜你喜欢

转载自blog.csdn.net/chuanzhouxiao/article/details/85332152
今日推荐