问题描述:
Fred Mapper 正在考虑在路易斯安那州购买一些土地来建他自己的房子。在研究土地的过程中,他发现,路易斯安那州的土地每年都会被密西西比河侵蚀掉 50 平方里。因为 Fred 希望在这个房子里度过余生,所以他需要知道他的那些土地是否会被侵蚀掉。
在做了更多的调查之后,Fred 发现这些土地是以半圆的形状被侵蚀的。这个半圆所对应的正圆的圆心在坐标原点 (0, 0), 坐标轴 x 轴将这个圆切成两半。在 x 轴下方的区域是河流。在第一年刚开始的时候,这个半圆的面积是 0.
红色为侵蚀方向,蓝色为河水
问输入Fred Mapper家的坐标(X,Y),他家所在的位置什么时候被河水侵蚀。
解题思路:
Fred Mapper的家(X,Y)到侵蚀中心(0,0)的距离就是侵蚀半径R
那么Area = 1/2*pi*R 就是侵蚀到Fred Mapper家时的侵蚀面积
而侵蚀速度为每年50
那么侵蚀到Fred Mapper家需要 RestYear = Area/50 = pi*R/100 年
又要求从第一年开始计算,最后一年不够一年按一年计算,那么RestYear+1取整就可以了。
以下对输入的几个参数做一下说明
2 //要测试的数据的组数 1.0 1.0 //房屋的x,y坐标 25.0 0.0
import java.util.Scanner; public class Testpoj1005 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); if(scanner.hasNext()){ int n = scanner.nextInt(); for( int i = 1 ; i <= n ; ++i ){ double x = scanner.nextFloat(); double y = scanner.nextFloat(); double s = Math.PI*(Math.pow(x, 2) + Math.pow(y, 2))/2; int count = 0 ; while( s > 0 ){ s = s - 50; ++count; } System.out.println("Property " + i + ": This property will begin eroding in year " + count+"."); } System.out.println("END OF OUTPUT."); } } }