【POJ1005】I Think I Need a Houseboat 解题报告

题目链接: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,然后求出半圆的面积\frac{\pi \cdot r^{2}}{2}。这个面积除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;
} 

猜你喜欢

转载自blog.csdn.net/mikchy/article/details/81146840
今日推荐