题解 | 点和圆的关系

点和圆的关系

https://www.nowcoder.com/practice/fdbbd0aaf89f49818e9ee1afb02deb10?tpId=225&tqId=2190767&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page

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

// 点类
class Pointer {

  private:
    int x;  // x 坐标
    int y;  // y 坐标

  public:
    void setX(int x) {
        this->x = x;
    }

    int getX() {
        return x;
    }

    void setY(int y) {
        this->y = y;
    }

    int getY() {
        return y;
    }

};

// 圆类
class Circle {

  private:
    Pointer center; // 圆心
    int radius; // 半径

  public:
    void setCenter(int x, int y) {
        center.setX(x);
        center.setY(y);
    }

    void setRadius(int radius) {
        this->radius = radius;
    }

    // write your code here......
    void isPointerInCircle(Pointer& p) {
        int a = pow(pow(p.getX() - this->center.getX(),
                        2) + pow(p.getY() - this->center.getY(), 2), 0.5);
        cout << (a > this->radius
                 ? "out" : (a == this->radius
                            ? "on" : "in"));
    }

};

int main() {

    // 键盘输入点的坐标
    int x, y;
    cin >> x;
    cin >> y;

    // 创建一个点
    Pointer p;
    p.setX(x);
    p.setY(y);

    // 创建一个圆
    Circle c;
    c.setCenter(5, 0);
    c.setRadius(5);

    // 判断点和圆的关系
    c.isPointerInCircle(p);

    return 0;
}

全部评论

相关推荐

11-13 12:02
门头沟学院 Java
我要娶个什么名:好骂,好骂 别学计算机就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务