区域内点的个数
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
X晚上睡不着的时候不喜欢玩手机,也不喜欢打游戏,他喜欢数星星。
Input
多组输入。
每组先输入一个整数N(N <= 10000),接着输入两个点代表矩形的左下点B(x,y)和右上点T(x,y),然后输入N个(X,Y)代表N颗星星。问有多少颗星星在窗子内部,在窗边上的不计。
Output
输出一个整数,代表有多少颗星星在窗子内部。
Sample Input
3
0 1
3 4
1 1
2 2
3 3
Sample Output
1
AC代码:
import java.util.Scanner;
class Point {
int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
class Rect {
Point p1, p2;
public Rect(Point x, Point y) {
p1 = x;
p2 = y;
}
public boolean panduan(Point p) { //判断点是否在矩形内
if (p.x > p1.x && p.x < p2.x && p.y > p1.y && p.y < p2.y) {
return true;
} else {
return false;
}
}
}
public class Main {
public static void main(String[] args) {
Scanner mi = new Scanner(System.in);
while (mi.hasNext()) {
int n = mi.nextInt();
Point p1 = new Point(mi.nextInt(), mi.nextInt());
Point p2 = new Point(mi.nextInt(), mi.nextInt());
Rect rect = new Rect(p1, p2);
int count = 0;
while (n-- > 0) {
Point p = new Point(mi.nextInt(), mi.nextInt());
if (rect.panduan(p)) {
count++;
}
}
System.out.println(count);
}
mi.close();
}
}
——————
余生还请多多指教!