点坐标可能重复出现
这句话的意思,难道不是让我们把重复的点只算一次吗? 比如
1 1 1 1 2 2 1 1 1
就应该算2个点,因为有重复出现的坐标。 所以距离小于100的点的个数是2个,分别为(1,1,1)和(1,2,2)。 结果,正确答案是3。 WA了很久。 我认为我的理解是正确的,题目垃圾。
2
(1,1,1)
(1,2,2)
3
为防止大数平方越界,可以先初步比较一下。
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; }
这题有点垃圾,非要sqrt吗?
大兄弟,直接平方与10000比就行啊。。
不用sqrt过不了就离谱
大兄弟,直接平方与10000比就行啊。。