问题:
小赛家有一块草坪,长为20米,宽为2米,妈妈要他给草坪浇水,在草坪上放置半径为Ri的喷水装置,每个喷水装置可以给以它为中心的半径为实数Ri(1<Ri<15)的圆形区域浇水。他家有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润。你能帮他计算一下,把整个草坪全部湿润,最少需要几个喷水装置。
题目表明,一种喷水装置没有多个
分析:
(1)一种喷水装置没有多个
(2)图解:以上交点为每次计算的开始位置,获得喷水装置能辐射对水池的最大矩形
code:
1 import java.util.Arrays; 2 import java.util.Scanner; 3 public class Main { 4 public static void main(String args[]) { 5 Scanner s = new Scanner(System.in); 6 int n = s.nextInt();// 喷水装置个数 7 Double[] keep = new Double[n]; 8 // 实例化喷水装置 9 for (int i = 0; i < n; i++) { 10 keep[i] = s.nextDouble(); 11 } 12 Arrays.sort(keep); 13 double max = 0; 14 int i; 15 for (i = n - 1; i >= 0; i--) { 16 max += 2 * Math.sqrt(keep[i] * keep[i] - 1); 17 if (max >= 20) { 18 break; 19 } 20 } 21 System.out.println(n - i); 22 s.close(); 23 } 24 25 }