题目描述
小赛家有一块草坪,长为20米,宽为2米,妈妈要他给草坪浇水,在草坪上放置半径为Ri的喷水装置,每个喷水装置可以给以它为中心的半径为实数Ri(1<Ri<15)的圆形区域浇水。他家有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润。你能帮他计算一下,把整个草坪全部湿润,最少需要几个喷水装置。
主要思路:
贪心算法就是贪
见代码:
import java.util.Arrays;
import java.util.Scanner;
/**
* 喷水装置
* 贪心算法
*/
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
double[] radius = new double[num];
int j = 0;
//这题输入有问题
while(scan.hasNextDouble()){
radius[j++] = scan.nextDouble();
}
Arrays.sort(radius);
double length = 0.0;
int count = 0;
for(int i = num - 1; i >= 0; i--){
//R*R - 1
length += 2*Math.sqrt(radius[i]*radius[i] - 1);
count ++;
if(length>=20.0){
break;
}
}
System.out.println(count);
scan.close();
}
}