搜狐暢遊2019第一題
阿新 • • 發佈:2018-12-11
整理題目時發現我居然沒截圖,不過題比較簡單,大意是進入遊戲時隨機到一個座標點,遊戲中有多個NPC在固定的座標位置,求距離人物最近的NPC的位置。需要動個腦筋的是輸入是x,y,n,x1,y1,x2,y2.....x和y是人物座標位置,n為NPC個數,之後的都是NPC座標,“,“為英文逗號。
程式碼入下:
#include <stdio.h> #include <iostream> #include <vector> #include <map> #include<algorithm> #include <string> #include <math.h> using namespace std; double GetLength(int xNPC,int yNPC,int x,int y,int XALL,int YALL) { if (x>XALL||y>YALL||xNPC>XALL||xNPC>YALL) { return 0; } double dLength=0; dLength=sqrt((double)(x-xNPC)*(x-xNPC)+(y-yNPC)*(y-yNPC)); return dLength; } int main() { int x;cin>>x; string str;getline(cin,str,','); int y;cin>>y; getline(cin,str,','); int N;cin>>N; int XALL=128; int YALL=128; double dMAX=0; int XNPCWANT,YNPCWANT; if (N>1000) { return 0; } for (int i=0;i<N;i++) { getline(cin,str,','); int xNPC;cin>>xNPC; getline(cin,str,','); int yNPC;cin>>yNPC; double dTemp=GetLength(xNPC,yNPC,x,y,XALL,YALL); if (i==0) { dMAX=dTemp; XNPCWANT=xNPC; YNPCWANT=yNPC; } if (dMAX>dTemp) { dMAX=dTemp; XNPCWANT=xNPC; YNPCWANT=yNPC; } } cout<<"("<<XNPCWANT<<","<<YNPCWANT<<")"<<endl; return 0; }
重點需要關注的是:如何讀得逗號間隔:
string str.getline(cin,str,',');