题解 | #点和圆的关系#

点和圆的关系

https://www.nowcoder.com/practice/fdbbd0aaf89f49818e9ee1afb02deb10

#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;
        }

        // 在圆类中实现一个 isPointerInCircle方法
        void isPointerInCircle(Pointer p){
            int a = (p.getX() - center.getX())*(p.getX() - center.getX()) + (p.getY() - center.getY())*(p.getY() - center.getY());
            //p横坐标与圆心横坐标相减后的平方+p纵坐标与圆心纵坐标相减后的平方 与 r*r 进行比较
            int b = radius*radius;
            if (a == b)
                cout << "on";
            if (a < b)
                cout << "in";
            if (a > b)
                cout << "out";
        }

};

int main() {

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

    // 创建一个点
    Pointer p;  //设置点的实例p
    p.setX(x);
    p.setY(y);

    // 创建一个圆
    Circle c;  //设置圆的实例c
    c.setCenter(5, 0);
    c.setRadius(5);

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

    return 0;
}

#你的秋招进展怎么样了##我的求职思考##零基础学习C++#
全部评论

相关推荐

不愿透露姓名的神秘牛友
02-16 22:33
杉川机器人 嵌入式工程师 18.0k*13.0, 年终奖1~9个月浮动
点赞 评论 收藏
分享
lingo12:1.最好加个业务项目,大部分面试官工作以后会更偏重业务 2.实习部分描述一般般,可能hr看到会觉得你产出不够不给你过简历 3.蓝桥杯这些大部分人都有的,不如不写,反而减分项。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务