题解 | #点和圆的关系#

点和圆的关系

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

#include 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......
   int getX() {
       return center.getX();//使用了私有变量中的Pointer的函数
   }
   
   int getY() {
       return center.getY();
   }
   /*int getRadius() {
       return this ->radius;
   }*/

    void isPointerInCircle(Pointer p) {
        int distance = (p.getX() - this ->getX()) ^ 2 + (p.getY() - this ->getY()) ^ 2;//点与圆心的距离
        if (distance == this ->radius) {
            cout << "on" << endl;
        } else if (distance < this ->radius) {
            cout << "in" << endl;
        } else {
            cout << "out" << endl;
        }
    }

};

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;

}

全部评论

相关推荐

真烦好烦真烦:豆包润色了自己没看看吗,再说了,都说豆包是愚蠢且勤快的大学生,ds才是聪明的研究生,怎么敢让豆包写论文的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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