搜狐畅游2019第一题

版权声明:原创文章,转载请注明出处: https://blog.csdn.net/hi_baymax/article/details/82829663

整理题目时发现我居然没截图,不过题比较简单,大意是进入游戏时随机到一个坐标点,游戏中有多个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,',');

猜你喜欢

转载自blog.csdn.net/hi_baymax/article/details/82829663