博客原文地址:http://blog.csdn.net/xuechelingxiao/article/details/40867049
题目大意:
给你两个矩形的长和宽,问第一个长方形能不能包含第二个长方形。
解题思路:
这道题乍看上去好想很简单,但其实细看的话,会有一种特殊情况很容易被忽略,如图:
这种情况很容易被忽略,对于这种情况,需要解一下图中的红色或黄色三角形,判断起来不是很麻烦,具体的看一下代码就可以了,很好理解。
代码:
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, x, y, L1, L2;
int T;
scanf("%d", &T);
while (T--) {
scanf("%lf%lf%lf%lf", &a, &b, &x, &y);
if(a < b) { double temp=a; a=b; b=temp; }
if(x < y) { double temp=x; x=y; y=temp; }
if(a > x && b > y){
printf("Escape is possible.\n");
continue;
}
else if( x*x+y*y > a*a+b*b){
printf("Box cannot be dropped.\n");
continue;
}
else{///斜着放入的情况
L1 = (a - sqrt((double)(x*x+y*y-b*b)))/2;
L2 = (b - sqrt((double)(x*x+y*y-a*a)))/2;
if (L1*L1+L2*L2>y*y)
printf("Escape is possible.\n");
else
printf("Box cannot be dropped.\n");
}
}
return 0;
}