程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 1473 There's Treasure Everywhere!(簡單幾何)

POJ 1473 There's Treasure Everywhere!(簡單幾何)

編輯:C++入門知識

POJ 1473 There's Treasure Everywhere!(簡單幾何)


 

題目大意:

給你一個字符串,裡面有許多的操作,前面的數字是移動的距離,後面的英文表示移動的方向,問最後從遠點出發的一個點回落在什麼地方以及距離出發點的距離是多少。

 

解題思路:

題目本身並不是很難,也沒有什麼坑點,沒什麼好說的,字符串處理的時候細心一點就行。

PS:每組後面需要加一個回車,因為這個PE了一次啊啊啊啊!

 

代碼:

 

#include 
#include 
#include 
#include 
#include 
using namespace std;
const double t = sqrt(2.0);

int main()
{
    string s;
    int icase = 1;
    while(cin >> s) {
        if(s == END) {
            break;
        }
        int num = 0;
        double x = 0, y = 0;
        for(int i = 0; i < (int)s.length()-1; ++i) {
            if(s[i] >= '0' && s[i] <= '9') {
                num = num*10+(s[i]-'0');
            }
            else if(s[i] == ','){
                num = 0;
                continue;
            }
            else if(s[i] == 'N' && s[i+1] == 'E') {
                x+=num/t, y+=num/t, i++;
            }
            else if(s[i] == 'N' && s[i+1] == 'W') {
                x-=num/t, y+=num/t, i++;
            }
            else if(s[i] == 'S' && s[i+1] == 'E') {
                x+=num/t, y-=num/t, i++;
            }
            else if(s[i] == 'S' && s[i+1] == 'W') {
                x-=num/t, y-=num/t, i++;
            }
            else if(s[i] == 'N') {
                y+=num;
            }
            else if(s[i] == 'S') {
                y-=num;
            }
            else if(s[i] == 'E') {
                x+=num;
            }
            else if(s[i] == 'W') {
                x-=num;
            }
            //printf(%lf %lf
, x, y);
        }
        printf(Map #%d
, icase++);
        printf(The treasure is located at (%.3lf,%.3lf).
, x, y);
        printf(The distance to the treasure is %.3lf.

, sqrt(x*x+y*y));
    }

    return 0;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved