Ural_1030. Titanic
生活随笔
收集整理的這篇文章主要介紹了
Ural_1030. Titanic
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/*WA到暴了,不能用gets()!!!改成cin.getline() 就過了。把要用的數(shù)據(jù)都讀出來,然后帶入一個公式。
設(shè)球上兩個點(diǎn)(x1, y1),(x2, y2);
sum = r*acos(sin(x1)*sin(x2) + cos(x1)*cos(x2)*cos(y1-y2));*/
//My Code:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#define E 1e-5
using namespace std;
const int N = 100;
const double pi = acos(-1.0);
const double r = 3437.5;
char s[N];
char dslat[5], delat[5];
char dslon[5], delon[5];
int main(){
//freopen("data.in", "r", stdin);
int slat, slat1, slat2, elat, elat1, elat2;
int slon, slon1, slon2, elon, elon1, elon2;
double lat_s, lat_e, lon_s, lon_e, sum;
char c;
cin.getline(s, N);
cin.getline(s, N);
cin.getline(s, N);
scanf("%d%c%d%c%d%c%c%s", &slat, &c, &slat1, &c, &slat2, &c, &c, dslat);
scanf("%s", s);
scanf("%d%c%d%c%d%c%c%s", &slon, &c, &slon1, &c, &slon2, &c, &c, dslon);
getchar(); cin.getline(s, N);
scanf("%d%c%d%c%d%c%c%s", &elat, &c, &elat1, &c, &elat2, &c, &c, delat);
scanf("%s", s);
??? scanf("%d%c%d%c%d%c%c%s", &elon, &c, &elon1, &c, &elon2, &c, &c, delon);
getchar(); cin.getline(s, N);
lat_s = (dslat[0] == 'N'?1:-1)*(slat+(slat1 + slat2/60.0)/60.0)*pi/180.0;
lon_s = (dslon[0] == 'W'?-1:1)*(slon+(slon1 + slon2/60.0)/60.0)*pi/180.0;
lat_e = (delat[0] == 'N'?1:-1)*(elat+(elat1 + elat2/60.0)/60.0)*pi/180.0;
lon_e = (delon[0] == 'W'?-1:1)*(elon+(elon1 + elon2/60.0)/60.0)*pi/180.0;
sum = r*acos(sin(lat_s)*sin(lat_e)+cos(lat_s)*cos(lat_e)*cos(lon_s - lon_e));
printf("The distance to the iceberg: %.2lf miles.\n", sum);
if(100 - sum > 0.005) printf("DANGER!\n");
return 0;
}
設(shè)球上兩個點(diǎn)(x1, y1),(x2, y2);
sum = r*acos(sin(x1)*sin(x2) + cos(x1)*cos(x2)*cos(y1-y2));*/
//My Code:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#define E 1e-5
using namespace std;
const int N = 100;
const double pi = acos(-1.0);
const double r = 3437.5;
char s[N];
char dslat[5], delat[5];
char dslon[5], delon[5];
int main(){
//freopen("data.in", "r", stdin);
int slat, slat1, slat2, elat, elat1, elat2;
int slon, slon1, slon2, elon, elon1, elon2;
double lat_s, lat_e, lon_s, lon_e, sum;
char c;
cin.getline(s, N);
cin.getline(s, N);
cin.getline(s, N);
scanf("%d%c%d%c%d%c%c%s", &slat, &c, &slat1, &c, &slat2, &c, &c, dslat);
scanf("%s", s);
scanf("%d%c%d%c%d%c%c%s", &slon, &c, &slon1, &c, &slon2, &c, &c, dslon);
getchar(); cin.getline(s, N);
scanf("%d%c%d%c%d%c%c%s", &elat, &c, &elat1, &c, &elat2, &c, &c, delat);
scanf("%s", s);
??? scanf("%d%c%d%c%d%c%c%s", &elon, &c, &elon1, &c, &elon2, &c, &c, delon);
getchar(); cin.getline(s, N);
lat_s = (dslat[0] == 'N'?1:-1)*(slat+(slat1 + slat2/60.0)/60.0)*pi/180.0;
lon_s = (dslon[0] == 'W'?-1:1)*(slon+(slon1 + slon2/60.0)/60.0)*pi/180.0;
lat_e = (delat[0] == 'N'?1:-1)*(elat+(elat1 + elat2/60.0)/60.0)*pi/180.0;
lon_e = (delon[0] == 'W'?-1:1)*(elon+(elon1 + elon2/60.0)/60.0)*pi/180.0;
sum = r*acos(sin(lat_s)*sin(lat_e)+cos(lat_s)*cos(lat_e)*cos(lon_s - lon_e));
printf("The distance to the iceberg: %.2lf miles.\n", sum);
if(100 - sum > 0.005) printf("DANGER!\n");
return 0;
}
總結(jié)
以上是生活随笔為你收集整理的Ural_1030. Titanic的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐一系列优秀的Android开发源码
- 下一篇: Java线程池 / Executor /