CPE 一顆星選集 49 道必考題
題目連結:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1162
內容
給定地球半徑 6440 km,地球表面到衛星距離 s ,夾角 a (可能為 min 或 deg),求出兩衛星的距離(弧長,直線距離)。
每筆測資一列,分別為 s、a、(min or deg)。
範例輸入
500 30 deg
700 60 min
200 45 deg
範例輸出
3633.775503 3592.408346
124.616509 124.614927
5215.043805 5082.035982
想法
deg = min / 60。
角度超過 180 要拿 360 去減。
pi = 2.0*acos(0.0)。
弧長 = 2*pi*R*角度/360。
直線距離可用正弦定理或餘弦定理求出(我不知道我的正弦出了什麼Bug,一直WA = =)。
sin(), cos() 傳入的是弧度。
最後用 setprecision() 控制小數點位數。
程式碼
C++
1 |
|