CPP39. 点和圆的关系
描述
输入描述
键盘输入两个整数,分别是点的 x 坐标和 y 坐标(圆的参数已经给定)输出描述
示例1
输入:
5 5
输出:
on
示例2
输入:
3 4
输出:
in
示例3
输入:
10 10
输出:
out
C++ 解法, 执行用时: 2ms, 内存消耗: 324KB, 提交时间: 2022-07-02
#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 d = (p.getX() - center.getX()) * (p.getX() - center.getX()) + (p.getY() - center.getY()) * (p.getY() - center.getY()); int r = radius * radius; if (d < r) cout << "in" << endl; else if(d == r) cout << "on" << 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; }
C++ 解法, 执行用时: 2ms, 内存消耗: 392KB, 提交时间: 2022-04-17
#include <iostream> #include<cmath> 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 length = sqrt((p.getX() - this->center.getX()) * (p.getX() - this->center.getX()) + \ (p.getY() - this->center.getY()) *(p.getY() - this->center.getY())); if(length == this->radius) { cout<<"on"<<endl; } else if(length > this->radius) { cout<<"out"<<endl; }else { cout<<"in"<<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; }
C++ 解法, 执行用时: 2ms, 内存消耗: 392KB, 提交时间: 2021-10-23
#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; } void isPointerInCircle(Pointer& point) { // 计算点和圆心的距离 int distance = (point.getX() - center.getX()) * (point.getX() - center.getX()) + (point.getY() - center.getY()) * (point.getY() - center.getY()); int r = radius * radius; if (distance < r) { cout << "in" << endl; } else if (distance == r) { cout << "on" << 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; }
C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2021-12-21
#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& point){ int distance=(point.getX()-center.getX())*(point.getX()-center.getX())+(point.getY()-center.getY())*(point.getY()-center.getY()); int r=radius*radius; if(distance < r){ cout<<"in"<<endl; } else if (distance==r){ cout<<"on"<<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; }
C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2021-12-05
#include <iostream> #include <string> #include <cmath> 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 len=pow(p.getX()-this->center.getX(),2)+pow(p.getY()-this->center.getY(),2); if(len>pow(radius,2)) cout<< "out"; else if(len==pow(radius,2)) cout<< "on"; else cout<< "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; }