31. 距离小于 100!

jxtxzzw

点坐标可能重复出现

这句话的意思,难道不是让我们把重复的点只算一次吗?
比如

1 1 1
1 2 2
1 1 1

就应该算2个点,因为有重复出现的坐标。
所以距离小于100的点的个数是2个,分别为(1,1,1)(1,2,2)
结果,正确答案是3
WA了很久。
我认为我的理解是正确的,题目垃圾。

我太难了

为防止大数平方越界,可以先初步比较一下。

int NearPoints(Point *p, int n) {
int sum = 0;
for (int i = 0; i < n;i++){
if(abs(p[i].x) >= 100 || abs(p[i].y) >= 100 || abs(p[i].z) >= 100)
continue;
else if (p[i].x * p[i].x + p[i].y * p[i].y + p[i].z * p[i].z < 10000)
sum++;
}
return sum;
}

AntNLP_Agooner

这题有点垃圾,非要sqrt吗?

路桥知你心

大兄弟,直接平方与10000比就行啊。。

Twisted9

不用sqrt过不了就离谱

你当前正在回复 博客/题目
存在问题!