题目描述: 给出了正方形的坐标x,y和边长a,那么正方形的对角分别为x,y和x+a,y+a,给一个坐标,问坐标是否在正方形中(边界上也算) 输入: 3 2 8 输出: yes 编写简单函数: 题目扩充: 1 如果是矩形呢? 例题: 地图上有若干个导电矩形,长度大小不一(矩形四个角的坐标x,y<=10000)而且电工觉得,反正矩形很标准,边都平行于坐标轴,所以矩形随便给两个对角的点就够了……这电工觉得你够聪明。 输入 第一行是一个数字n,表示矩形个数 输出 一个整数,表示导流的矩形的编号(如果面积相等,那么编号尽可能的小) 样例输入 3 样例输出 3
8 10bool IsinRange(int a, int Num, int b) { return a <= Num && Num <= b; }
2 如果给的是矩形的(左上和右下)(左下和右上)#include<iostream> using namespace std; int square[55]; const int minint = -100000000; int lx[55], ly[55], rx[55], ry[55]; bool insquare[55]; bool IsinRange(int a, int Num, int b) { return a <= Num && Num <= b; } bool legal(int a, int Num, int b) { if (a>b) { return IsinRange(b, Num, a); } else { return IsinRange(a, Num, b); } } int Getlength(int x1, int x2) { if (x1>x2) { return x1 - x2; } else { return x2 - x1; } } //求面积 int Getsquare(int x1, int y1, int x2, int y2) { int x, y; x = Getlength(x1, x2); y = Getlength(y1, y2); return x * y; } int main() { int i = 0, j = 0,k = 0; int n; int gx, gy; cin >> n; for ( i = 0; i <n ; i++) { cin >> lx[i] >> ly[i] >> rx[i] >> ry[i]; } for ( i = 0; i < n; i++) { square[i] = Getsquare(lx[i], ly[i], rx[i], ry[i]); } for ( i = 0; i < n; i++) { cin >> gx >> gy; } for ( i = 0; i < n; i++) { if (legal(lx[i],gx,rx[i])&&legal(ly[i],gx,ry[i])) { insquare[i] = true; } } return 0; }
题目描述
在某个位置有一个电针,而且放出了一股电流,只有包含(包括在边界上)了电针的矩形才有可能将这电流导流,而最终面积最大的矩形是导流的矩形。
求这个矩形是输入数据中给出的第几个矩形
接下来n行,
每行4个整数,x1,y1,x2,y2,表示第i号矩形对角的坐标
接下来1行,两个整数x,y,表示电针的坐标
6 8 2 3
1 3 5 6
8 2 1 9
4 4#include<iostream> using namespace std; int square[55]; const int minint = -100000000; int lx[55], ly[55], rx[55], ry[55]; bool insquare[55]; bool IsinRange(int a, int Num, int b) { return a <= Num && Num <= b; } bool legal(int a, int Num, int b) { if (a>b) { return IsinRange(b, Num, a); } else { return IsinRange(a, Num, b); } } int Getlength(int x1, int x2) { if (x1>x2) { return x1 - x2; } else { return x2 - x1; } } //求面积 int Getsquare(int x1, int y1, int x2, int y2) { int x, y; x = Getlength(x1, x2); y = Getlength(y1, y2); return x * y; } int main() { int i = 0, j = 0,k = 0; int n; int gx, gy; int a; cin >> n; //n个矩形 //读入n个矩形点的坐标 for ( i = 0; i < n ; i++) { cin >> lx[i] >> ly[i] >> rx[i] >> ry[i]; } for ( i = 0; i < n; i++) { square[i] = Getsquare(lx[i], ly[i], rx[i], ry[i]); } //读入电针坐标 cin >> gx >> gy; for ( i = 0; i < n; i++) { if (legal(lx[i],gx,rx[i])&&legal(ly[i],gx,ry[i])) { insquare[i] = true; } } a = 0; int maxsquare = minint; for (i = 0; i < n; i++) { if (maxsquare < square[i]) //比较大小 { if (insquare[i]) // 判断合法性 { maxsquare = square[i]; a = i; } } } cout << a+1 << endl; return 0; }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算