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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值