题解 | #长方形的关系#
长方形的关系
http://www.nowcoder.com/practice/6b099f3a8e3745b592203f14e3954411
描述
给出两个长方形的长和宽(长不一定大于宽),实现长方形类的一个方法,判定前者是否能完全覆盖后者。
输入描述:
输入4个整数,前两个表示第一个长方形的长和宽,后两个表示第二个长方形的长和宽。
输出描述:
如果前者能完全覆盖后者输出"yes"否则输出"no"
解题思路
看排名较高的的解题方法是比较两个矩形的面积 但是里面涉及到一个问题,比如说,一个矩形参数为(20,1),另一个矩形参数为(3,4) 第一个矩形的面积虽然比第二个矩形的面积大, 但是前者不能完全将第二个矩形完全覆盖, 故因此比较他们的较长的边,和较短的边分别比较,最终达到题目所要求的 先找出矩形较长的边和较短的边,分别比较 代码如下
#include<bits/stdc++.h>
using namespace std;
class rectangle{
private:
int length,width;
public:
void set(int x,int y){
length=x;
width=y;
}
int getlength(){
return length;
}
int getwidth(){
return width;
}
int area(){
return length*width;
}
// write your code here......
int find_max (){
if ( length > width )
return length;
else
return width ;
}
int find_min (){
if ( length < width)
return length ;
else
return width ;
}
string cancover(rectangle & b){
if ((this -> find_max() >= b.find_max()) && (this ->find_min() >= b.find_min()) )
return "yes" ;
else
return "no" ;
}
};
int main(){
int l1,w1,l2,w2;
cin>>l1>>w1>>l2>>w2;
rectangle a,b;
a.set(l1,w1);
b.set(l2,w2);
cout << a.cancover(b);
return 0;
}