close

題目概要:

計算出2顆衛星的距離(直線距離、弧長)。

uva10221_p.JPG

解題方向:

1.兩顆衛星的直線距離:直用正弦定理或餘弦定理去解即可。

2.兩顆衛星的弧長:直接用弧長公式去解即可。

 

注意事項:

1.當角度(deg)超過180度時需要用360去減掉。

2.範例程式碼中使用餘弦定理,式子已經有簡化過。不過用正弦會方便很多。

3.記得加上地球半徑(r+s),不要直接拿衛星離地表的距離(s)當作半徑去算。

4. 1(min)=60(deg)

5.min轉換成deg要注意,如果你是直接把轉換後的結果放到第2個參數上,那麼第2個參數的型態記得要是float/double,否則答案會錯。

//這樣打是錯誤的!!!!!
while(sc.hasNext()){
 int s=sc.nextInt();
 int a=sc.nextInt(); //第2個參數
 String type=sc.next();
            
  if(type.equals("deg")){
   a=Math.min(360-a,a);
  }else{
   a/=60; //這裡會有小數點,所以轉換出來結果不是正確的,連帶輸出的答案也是錯誤的!!
  }
            
 //省略...
 }

6.在瘋狂程設中換行要\r\n,Uva Online Judge則只需要\n就好。如果不想換一個平台就要改換行的格式,那就先印出結果,印完後再用System.out.println()做換行即可。

7.Java的Math.cos()帶入的參數單位為弧度,所以要自己把角度(deg)轉成弧度才能帶入。

 

程式碼:

arrow
arrow
    文章標籤
    Java
    全站熱搜
    創作者介紹
    創作者 a7069810 的頭像
    a7069810

    紀錄自己的程式人生

    a7069810 發表在 痞客邦 留言(0) 人氣()