Problem B: 点在圆内吗?
来源:互联网 发布:淘宝买家的退货率 编辑:程序博客网 时间:2024/04/30 11:54
Problem B: 点在圆内吗?
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1819 Solved: 979
[Submit][Status][Web Board]
Description
定义一个Point类和Circle类,用于判断给定的一系列的点是否在给定的圆内。
其中,Point类:
1.有2个成员x和y,分别为其横坐标和纵坐标;1个静态成员numOfPoints,用于计算生成的点的个数。
2.具有构造函数、析构函数和拷贝构造函数,具体格式输出根据样例自行判断。
3. 具有静态方法int getNumOfPoints(),用于返回numOfPoints的值。
4. 具有int getX()和int getY()方法,用于获取横坐标和纵坐标。
Circle类:
1. 拥有Point类的对象center,表示圆心坐标。拥有radius对象,表示圆的半径;1个静态成员numOfCircles,用于指示生成了多少个圆对象。
2. 具有构造函数、析构函数和拷贝构造函数,具体格式根据样例自行判断。
3.具有静态方法int getNumOfCircles(),返回numOfCircles的值。
4. 具有getCenter()方法,返回圆心坐标。注意:根据输出结果判断返回值类型。
5. 具有bool pointInCircle(Point &)方法,用于判断给定的点是否在当前圆内。是则返回true,否则返回false。
Input
输入分多行。
第一行M>0,表示有M个测试用例。
每个测试用例又包括多行。第1行包含3个整数,分别为一个圆的横坐标、纵坐标和半径。第2行N>0,表示之后又N个点,每个点占一行,分别为其横坐标和纵坐标。
所有输入均为整数,且在int类型范围内。
Output
输出见样例。注意:在圆的边上的点,不在圆内。
Sample Input
Sample Output
HINT
Append Code
한국어< 中文 فارسی English ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin
#include <iostream>using namespace std;class Point {public: int x; int y; static int numOfPoints; Point(int a = 0,int b = 0):x(a),y(b) {numOfPoints++; cout<<"The Point ("<<x<<", "<<y<<") is created! Now, we have "<<numOfPoints<<" points."<<endl;} ~Point() {numOfPoints--; cout<<"A Point ("<<x<<", "<<y<<") is erased! Now, we have "<<numOfPoints<<" points."<<endl;} Point(const Point &p) { numOfPoints++; x = p.x; y = p.y; cout<<"A Point ("<<x<<", "<<y<<") is copied! Now, we have "<<numOfPoints<<" points."<<endl; } static int getNumOfPoints() { return numOfPoints; } int getX() { return x; } int getY() { return y; }};class Circle { public: Point center; int radius; static int numOfCircles; Circle(int a,int b,int c):center(a,b),radius(c) { numOfCircles++; cout<<"A circle at ("<<center.x<<", "<<center.y<<") and radius "<<radius<<" is created! Now, we have "<<numOfCircles<<" circles."<<endl; } Circle(Point p,int r):center(p),radius(r) { numOfCircles++; cout<<"A circle at ("<<center.x<<", "<<center.y<<") and radius "<<radius<<" is created! Now, we have "<<numOfCircles<<" circles."<<endl; } ~Circle() { numOfCircles--; cout<<"A circle at ("<<center.x<<", "<<center.y<<") and radius "<<radius<<" is erased! Now, we have "<<numOfCircles<<" circles."<<endl; } Circle(const Circle &c) { numOfCircles++; center.x = c.center.x; center.y = c.center.y; radius = c.radius; cout<<"A circle at ("<<center.x<<", "<<center.y<<") and radius "<<radius<<" is copied! Now, we have "<<numOfCircles<<" circles."<<endl; } static int getNumOfCircles() { return numOfCircles; } Point &getCenter() { return center; } bool pointInCircle(Point &p) { if((p.x-center.x)*(p.x-center.x)+(p.y-center.y)*(p.y-center.y) < radius*radius) { return true; } else return false; }};int Point::numOfPoints=0;int Circle::numOfCircles=0;int main(){ int cases,num; int x, y, r, px, py; Point aPoint(0,0), *bPoint; Circle aCircle(1,1,1); cin>>cases; cout<<"We have "<<Point::getNumOfPoints()<<" points and "<<Circle::getNumOfCircles()<<" circles now."<<endl; for (int i = 0; i < cases; i++) { cin>>x>>y>>r; bPoint = new Point(x,y); Circle circle(*bPoint, r); cin>>num; for (int j = 0; j < num; j++) { cin>>px>>py; if (circle.pointInCircle(*(new Point(px, py)))) { cout<<"("<<px<<", "<<py<<") is in the circle at ("; cout<<circle.getCenter().getX()<<", "<<circle.getCenter().getY()<<")."<<endl; } else { cout<<"("<<px<<", "<<py<<") is not in the circle at ("; cout<<circle.getCenter().getX()<<", "<<circle.getCenter().getY()<<")."<<endl; } } delete bPoint; } cout<<"We have "<<Point::getNumOfPoints()<<" points, and "<<Circle::getNumOfCircles()<<" circles."<<endl; return 0;}
- Problem B: 点在圆内吗?
- Problem E: 点在圆内吗?
- Problem C: 点在圆内吗?
- Problem C: 点在圆内吗?
- Problem C: 点在圆内吗?
- Problem B: 点之间的距离
- 11.10作业 Problem B: 说好的点呢
- Problem B: 立体空间中的点(II)
- Problem B: 立体空间中的点(II)
- Problem B
- Problem B
- Problem B
- Problem B
- Problem B
- Problem B
- Problem B
- Problem B
- Problem B
- 花式最短路题目总结
- Hibernate 常用更新数据方法(机制)
- 商业智能解决方案不完全等于数据分析
- Oracle 导出导入数据
- leetcode62Unique Paths
- Problem B: 点在圆内吗?
- Caffe学习系列(2):数据层及参数
- [Python]模块和包
- 浅谈HTTP
- leetcode 61Rotate List
- Problem C: 重载字符的加减法
- leetcode60Permutation Sequence
- 通信协议——Http、TCP、UDP
- 区块链共识机制(zhai)