上一篇介紹了Parking,題目是說在一條很長的道路上,選擇任意位子停車,要輸出走去各點並回到停車處的最小距離,是一題計算最小距離的題目,不管在哪停車,走訪各點並回到停車處最近的方式是,
分別走返停車的最左與最右邊的點(途中會經過其他點,也算走過),因此,題目可以看成計算兩個相隔最遠的商店距離。
今天講解的題目是Fourth Point!!
先附上程式碼:
import java.util.;
import static java.lang.System.;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNextDouble()){
double a[][]=new double[4][2];
double b[]=new double[2],x=0,y=0;
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
a[i][j]=sc.nextDouble();
}
for(int j=0;j<i;j++){
if(a[j][0]==a[i][0] && a[j][1]==a[i][1]){
b[0]=a[i][0];
b[1]=a[i][1];
}
}
}
for(int i=0;i<a.length;i++){
if(!(a[i][0] == b[0] && a[i][1]==b[1])){
x+=a[i][0];
y+=a[i][1];
}
}
x=x-b[0];
y=y-b[1];
System.out.printf("%.3f %.3f",x,y);
System.out.println("");
}
}
};
這題題目會給我們平行四邊形的四個座標,其中有兩個座標是相同的,只要找出相同的兩個,再利用對角線相加的原理就可以解出這題了,所有座標均在−10000和+10000之間,這題一定會給出兩個相同的,所以也不用擔心沒有的情況,但這題是有使用浮點數的,所以不能單純使用INT下去解答。
今天的講解就到這裡。
明天也是新的題目,會介紹Prime Gap,繼續加油!