搜狐C++笔试编程题
搜狐C++笔试编程题一不知道为啥只通过了75%
题目输出与你最近的NPC坐标
地图大小128*128;
参数一:你的坐标x,
参数二:你的坐标y,
参数三:NPC个数,
参数四:NPC的坐标用,号隔开如x1,y1,x2,y2
所有参数均用逗号隔开,前后无空格
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
struct Point
{
int x = 0;
int y = 0;
};
int main()
{
vector<int> p;
string s;
cin >> s;
int temp = 0, size;
for (int i = 0; i < s.size(); i++)
{
if (s[i] != ',')
{
temp = temp * 10 + (int)(s[i] - '0');
}
else
{
p.push_back(temp);
temp = 0;
}
}
p.push_back(temp);
//for(int i=0;i<p.size();i++)
//cout<<p[i]<<" ";
// string s;
//cin>>s;
//for(int i=0;i<s.size();i++)
Point my;
my.x = p[0];
my.y = p[1];
size = p[2];
vector<Point> NPC(size);
int i = 0,small=100000,index=0,abx,aby;
for (; i < size; i++)
{
NPC[i].x = p[2 * i + 3] - my.x;
NPC[i].y = p[2 * i + 4] - my.y;
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
struct Point
{
int x = 0;
int y = 0;
};
int main()
{
vector<int> p;
string s;
cin >> s;
int temp = 0, size;
for (int i = 0; i < s.size(); i++)
{
if (s[i] != ',')
{
temp = temp * 10 + (int)(s[i] - '0');
}
else
{
p.push_back(temp);
temp = 0;
}
}
p.push_back(temp);
//for(int i=0;i<p.size();i++)
//cout<<p[i]<<" ";
// string s;
//cin>>s;
//for(int i=0;i<s.size();i++)
Point my;
my.x = p[0];
my.y = p[1];
size = p[2];
vector<Point> NPC(size);
int i = 0,small=100000,index=0,abx,aby;
for (; i < size; i++)
{
NPC[i].x = p[2 * i + 3] - my.x;
NPC[i].y = p[2 * i + 4] - my.y;
abx=abs(my.x);
aby=abs(my.y);
if(small>abx+aby){small=abx+aby;index=i;}
}
cout << "(" << NPC[index].x + my.x << "," << NPC[index].y + my.y << ")";
return 0;
}
#搜狐##笔试题目##题解#}
cout << "(" << NPC[index].x + my.x << "," << NPC[index].y + my.y << ")";
return 0;
}