OpenJudge I Think I Need a Houseboat

目录

I Think I Need a Houseboat

要求:

描述: 

输入: 

输出: 

样例输入: 

样例输出: 

提示: 

问题分析: 

最终代码:

总结:


I Think I Need a Houseboat

要求:

总时间限制: 1000ms

内存限制: 65536kB

描述: 

Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the state of Louisiana is actually shrinking by 50 square miles each year, due to erosion caused by the Mississippi River. Since Fred is hoping to live in this house the rest of his life, he needs to know if his land is going to be lost to erosion.

After doing more research, Fred has learned that the land that is being lost forms a semicircle. This semicircle is part of a circle centered at (0,0), with the line that bisects(平分,二等分) the circle being the X axis. Locations below the X axis are in the water. The semicircle has an area of 0 at the beginning of year 1. (Semicircle illustrated in the Figure.)

输入: 

The first line of input will be a positive integer indicating how many data sets will be included (N). Each of the next N lines will contain the X and Y Cartesian(笛卡尔的) coordinates(坐标) of the land Fred is considering. These will be floating point numbers measured in miles. The Y coordinate will be non-negative. (0,0) will not be given.

输出: 

For each data set, a single line of output should appear. This line should take the form of: “Property N: This property will begin eroding in year Z.” Where N is the data set (counting from 1), and Z is the first year (start from 1) this property will be within the semicircle AT THE END OF YEAR Z. Z must be an integer. After the last data set, this should print out “END OF OUTPUT.”

样例输入: 

2
1.0 1.0
25.0 0.0

样例输出: 

Property 1: This property will begin eroding in year 1.
Property 2: This property will begin eroding in year 20.
END OF OUTPUT.

提示: 

1.No property will appear exactly on the semicircle boundary: it will either be inside or outside. 
2.This problem will be judged automatically. Your answer must match exactly, including the capitalization(大写), punctuation, and white-space. This includes the periods(句号) at the ends of the lines. 
3.All locations are given in miles.

问题分析: 

这个问题本质上也并不难. Fred Mapper希望在Louisiana购买土地以安度余生,但是Louisiana收到Mississippi River的冲刷土地面积每年以半圆形向外缩减50平方英里,输入中会给定Fred Mapper指定的坐标,希望可以计算出这个坐标会在哪一年开始被侵蚀?(假设侵蚀是平均且严格按半圆向外扩展)

那么这个题目就变得很简单了,只需要计算出目标点所在的最小半圆面积,再除以侵蚀速度就可以得到答案。但是有几个需要注意的细节:1)答案需要计算的是哪一年开始被侵蚀,所以结果需要+1;2)此题可能不用在意,但是如何定义PI是一个问题;3)面对比较繁杂的输出时,printf比cout要更加方便与简洁.

最终代码:

#include<iostream>
#include<cmath>
using namespace std;
const double PI=acos(-1.0);//重中之重!!!
int main(){
    int N;
    scanf("%d",&N);
    for(int i=0;i<N;i++){
        float X,Y;
        scanf("%f%f",&X,&Y);
        float area=(X*X+Y*Y)*PI/2;
        int month=area/50+1;//不要忘加1
        printf("Property %d: This property will begin eroding in year %d.\n",i+1,month);//不要忘加1
    }
    printf("END OF OUTPUT.");
}

总结:

题目本身并不难,比较重要的点,一个是PI的处理,另一个是printf的使用.如果这篇文章对您有所帮助的话,请不要忘了点赞关注哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值