NOJ - T008
[編輯] [转简体] (简体译文)
|
作者:huidong
| 分類:【編程】NOJ 和 C 程序設計習題
[
32 瀏覽
0 評論
4 贊
4 踩
]
概要
注意輸入數據其實是角度,不是弧度
正文
#include <stdio.h> #include <math.h> const double PI = 3.1415926535; const double r = 6371.0; double hav(double _X) { return (1 - cos(_X)) / 2; } double toRad(double _Angle) { return _Angle * PI / 180; } int main() { double _x1, _y1, _x2, _y2; double x1, y1, x2, y2; scanf("%lf %lf%lf %lf", &_x1, &_y1, &_x2, &_y2); x1 = toRad(_x1); x2 = toRad(_x2); y1 = toRad(_y1); y2 = toRad(_y2); double hav_d_r = hav(x2 - x1) + cos(x1) * cos(x2) * hav(y2 - y1); double d = r * acos(1 - 2 * hav_d_r); printf("%.4lfkm", d); return 0; }