思路:

  1. 遍历每个敌人,判断其与技能释放点的距离是否小于等于半径r,若是则进一步判断是否在技能释放点的上方,若是则计数器加1。

  2. 输出计数器的值即可。

代码实现:

#include<iostream>
#include<cmath>
using namespace std;

int main(){
    int n;
    double r, x, y, z, sx, sy, sz, count=0;
    cin>>n>>r;
    for(int i=0;i<n;i++){
        cin>>x>>y>>z;
        if(sqrt((x-sx)*(x-sx)+(y-sy)*(y-sy)+(z-sz)*(z-sz))<=r && sz<z){
            count++;
        }
    }
    cout<<count<<endl;
    return 0;
}

注意事项:

  1. 要开头声明计数器count并初始化为0。

  2. 三维空间中点与点之间的距离公式为 $\sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2}$。

  3. 可以使用cmath库中的sqrt函数求平方根

使用c++解决以下问题:第一行输入两个正整数n和r表示有n个敌人球形范围半径是r;接下来的n行每行有三个小数xyz 表示n个怪物的三维坐标;最后输入三个小数xyz 表示技能释放坐标。输出一个数字表示技能释放后消灭了多少敌人

原文地址: https://www.cveoy.top/t/topic/c1io 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录