题目链接:https://vjudge.net/problem/POJ-1005
题意:
输入:
先输入案例个数N,然后下面的N行,每行两个数表示X和Y
输出:
输出格式Property N: This property will begin eroding in year Z.,其中N表示这是第几个案例,Z表示淹没从第几年
解题思路:
利用给出的(X,Y)和(0,0)确定圆的半径r,然后求出半圆的面积。这个面积除50,注意的是,未满一年按一年处理,即2.3也是看为3年,所以强制把浮点数变为整型,会是2,所以需要用到取整函数,而且是向上取整ceil函数。
PI一般取的时候,在这里用acos(-1.0),因为cosPI=-1,所以反三角函数-1就得PI。
AC代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const double PI = acos(-1.0);
int main()
{
int n;
cin >> n;
for(int i = 1;i <= n;i++)
{
double x,y;
cin >> x >> y;
double r = sqrt(x*x+y*y);
double S = PI*r*r/2.0;
int Z = ceil(S/50.0);
printf("Property %d: This property will begin eroding in year %d.\n",i,Z);
}
cout << "END OF OUTPUT." << endl;
return 0;
}