zoukankan      html  css  js  c++  java
  • POJ 1473 There's Treasure Everywhere!

    题目链接

    小小的模拟一下。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <string>
     4 #include <cmath>
     5 #include <algorithm>
     6 using namespace std;
     7 char str[1000];
     8 double a[10];
     9 double b[10];
    10 void CL()
    11 {
    12     a[0] = a[2] = 0.0;
    13     a[4] = a[5] = sqrt(2.0)/2.0;
    14     a[1] = 1.0;
    15     a[3] = -1.0;
    16     a[6] = a[7] = -sqrt(2.0)/2.0;
    17     b[0] = 1.0;
    18     b[2] = -1.0;
    19     b[4] = b[7] = sqrt(2.0)/2.0;
    20     b[3] = b[1] = 0.0;
    21     b[5] = b[6] = -sqrt(2.0)/2.0;
    22 }
    23 int judge(int x)
    24 {
    25     if(str[x+1] == ','||str[x+1] == '.')
    26     {
    27         if(str[x] == 'N')
    28             return 0;
    29         else if(str[x] == 'E')
    30             return 1;
    31         else if(str[x] == 'S')
    32             return 2;
    33         else if(str[x] == 'W')
    34             return 3;
    35     }
    36     else
    37     {
    38         if(str[x] == 'N'&&str[x+1] == 'E')
    39             return 4;
    40         else if(str[x] == 'S'&&str[x+1] == 'E')
    41             return 5;
    42         else if(str[x] == 'S'&&str[x+1] == 'W')
    43             return 6;
    44         else if(str[x] == 'N'&&str[x+1] == 'W')
    45             return 7;
    46     }
    47     return 0;
    48 }
    49 int main()
    50 {
    51     int len,i,cas = 1,pre,j,temp;
    52     double x,y;
    53     CL();
    54     while(scanf("%s",str)!=EOF)
    55     {
    56         if(strcmp(str,"END") == 0) break;
    57         len = strlen(str);
    58         pre = 0;
    59         x = y = 0;
    60         for(i = 0; i < len; i ++)
    61         {
    62             if(str[i] == ','||str[i] == '.')
    63             {
    64                 temp = 0;
    65                 for(j = pre; j < i; j ++)
    66                 {
    67                     if(str[j] <= '9'&&str[j] >= '0')
    68                         temp = temp*10 + str[j] - '0';
    69                     else
    70                         break;
    71                 }
    72                 x += temp*a[judge(j)];
    73                 y += temp*b[judge(j)];
    74                 pre = i+1;
    75             }
    76         }
    77         printf("Map #%d
    ",cas++);
    78         printf("The treasure is located at (%.3f,%.3f).
    ",x,y);
    79         printf("The distance to the treasure is %.3f.
    
    ",sqrt(x*x+y*y));
    80     }
    81     return 0;
    82 }
  • 相关阅读:
    深度优先搜索初尝试-DFS-LakeCounting POJ No.2386
    hdoj-2053-Switch Game
    《算法竞赛入门经典》习题及反思 -<2>
    高精度N的阶乘-N!
    列举一些有所帮助的blog和文章
    hdoj-2039-三角形
    hdoj-2035-人见人爱a^b
    hdoj-2028-Lowest common multiple plus
    hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b
    程序设计第三次作业---C++计算器雏形
  • 原文地址:https://www.cnblogs.com/naix-x/p/3370478.html
Copyright © 2011-2022 走看看