I Think I Need a Houseboat
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.)
Input
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.
Output
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.”
Sample Input
2
1.0 1.0
25.0 0.0
Sample Output
Property 1: This property will begin eroding in year 1.
Property 2: This property will begin eroding in year 20.
END OF OUTPUT.
Hint
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.
思路
这道题是一道水题,大体意思就是先输入一个整数来决定输入的数据的行数。然后一行数据包含x,y两个坐标的值,因为题中说圆心是(0,0),所以用勾股定理可以求出其半径。题中还说x轴下面是水,所以就相当于求半圆的面积。题中说每年减少50平方英里,于是可以用总面积除以50并向上取整得到年数。
AC代码
import java.util.*;
import java.math.*;
public class Poj1005 {
public static void main(String[] args){
Scanner keyboard=new Scanner(System.in);
int a;
double b,c;
double pi=Math.PI;
double r;
double s;
double n;
a=keyboard.nextInt();
String space=keyboard.nextLine();
for(int i=0;i<a;i++){
b=keyboard.nextDouble();
c=keyboard.nextDouble();
r=Math.pow((b*b+c*c), 0.5);
s=pi*r*r/2;
n=Math.ceil(s/50);
System.out.println("Property "+(i+1)+": This property will begin eroding in year "+(int)n+".");
}
System.out.println("END OF OUTPUT.");
}
}
总结
这道题交了两次,很难受,第一次wa的原因居然是最后的end of output那句话后面没有加".",从而导致了输出格式跟题目中给的不一样,所以wa了,太大意了。争取以后努力改正。