1005_Java

作者: 李小佛 | 来源:发表于2019-06-20 10:10 被阅读0次

题意:

谷歌翻译:
Fred Mapper正在考虑购买路易斯安那州的一些土地来建造他的房子。在调查土地的过程中,他了解到路易斯安那州每年因缩小密西西比河而受到侵蚀,实际上每年缩小50平方英里。由于弗雷德希望在他的余生中住在这所房子里,他需要知道他的土地是否会因侵蚀而丧失。 经过更多的研究,弗雷德已经了解到失去的土地形成了一个半圆形。该半圆是以(0,0)为中心的圆的一部分,其中将圆将二等分为X轴。 X轴下方的位置在水中。半圆在第1年开始时的面积为0.(图中所示的半圆)
简而言之:
一个处于Y轴正方向,圆心位于原点的半圆,初始面积为0㎡,每年都向Y轴正方向扩散,每年通过扩散增加面积50㎡,现在有Y轴正方向的一个点P(m,n),该半圆最少需要多少年扩散到这个点。其实就是比较第N年半圆半径r和点P到原点的距离L,当r>=L时,N的最小值
公式推导:
半径的平方:r²=50N2/π
点P到原点的距离的平方:L²=m²+n²
计算公式 r²>=L²
即 50N
2/π> = m²+n²
N >=(m²+n²)π/(502)
用户输入m,n计算出的值 向上取整 即为N的值

Input:
第一行输入点P的数量,以下每行是一个点P的坐标(m,n)

Output:
输出扩散到点P所需要的年数

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int totalCount = sc.nextInt();
        int lineCount = 0;
        while (sc.hasNext()) {
            lineCount++;
            int yearCount = (int) Math.ceil((Math.pow(sc.nextFloat(), 2) + Math.pow(sc.nextFloat(), 2)) * Math.PI / 100);
            System.out.println("Property " + lineCount + ": This property will begin eroding in year " + yearCount + ".");
            if (lineCount == totalCount) {
                System.out.println("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.

相关文章

  • 1005_Java

    题意: 谷歌翻译:Fred Mapper正在考虑购买路易斯安那州的一些土地来建造他的房子。在调查土地的过程中,他了...

网友评论

      本文标题:1005_Java

      本文链接:https://www.haomeiwen.com/subject/hdtlqctx.html