用c++实现以下:题目描述 假设以某个雷达站所在位置为基点,坐标记为(0,0),侦察半径是R千米。现有N个运动物体坐标(单位是千米),请计算有多少个运动物体会被雷达侦测到。 输入 输入说明:第一行是两个数N和R,分别表示运动物体的个数和侦察半径。接下来是N行分别输入运动物体的坐标(X,Y)。 输出 输出说明:N个运动物体中能够被雷达发现的个数。 样例输入 5 30 10 25 18 12 19 10 20 25 21 22 样例输出 3
时间: 2024-02-22 10:57:26 浏览: 26
好的,这是一道简单的计算题,可以使用勾股定理求解。以下是 C++ 的代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n, r, count = 0;
cin >> n >> r;
for (int i = 0; i < n; i++) {
int x, y;
cin >> x >> y;
if (sqrt(x * x + y * y) <= r) { // 使用勾股定理计算距离,判断是否在侦察半径内
count++;
}
}
cout << count << endl; // 输出能够被雷达发现的个数
return 0;
}
```
解释一下代码:
首先,我们输入两个正整数 N 和 R。
然后,我们使用 `for` 循环遍历每个运动物体的坐标。对于每个坐标,我们使用勾股定理计算该物体距离雷达站的距离,如果小于等于侦察半径 R,则说明该物体可以被雷达发现,我们就将计数器加 1。
最后,我们输出能够被雷达发现的个数。
希望这个答案能够帮到您,如果您还有其他问题,欢迎继续提问。