⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globe.c

📁 ULM大学200-2002年竞赛题
💻 C
字号:
// Problem   Global Roaming// Algorithm 3D-Geometry// Runtime   O(n)// Author    Marc Meister// Date      02.07.2001#include <fstream>#include <string>#include <cmath>using namespace std;typedef struct pos {  double x, y, z;} tPos;#define EarthR 6378.0ifstream in("globe.in");tPos polar2cartesian(double lat, double lon, double r) {  tPos p;  lat *= atan(1.0)/45.0;  lon *= atan(1.0)/45.0;  p.x = r * cos(lon) * cos(lat);  p.y = r * sin(lon) * cos(lat);  p.z = r * sin(lat);  return p;}int main() {  double lat, lon, r;  for (int kase = 1; ; kase++){    int n;    in >> n >> lat >> lon >> r;    if (!n)      break;    cout << "Test case " << kase << ":" << endl;    tPos p1 = polar2cartesian(lat, lon, r + EarthR);    for (int i=0; i<n; i++) {      string s;      in >> s >> lat >> lon;      tPos p2 = polar2cartesian(lat, lon, EarthR);      if ( (p1.x-p2.x)*p2.x + (p1.y-p2.y)*p2.y + (p1.z-p2.z)*p2.z > 0.0)        cout << s << endl;    }    cout << endl;  }  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -