程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 1380 Equipment Box(判斷一個長方形能不能包含另一個長方形)

POJ 1380 Equipment Box(判斷一個長方形能不能包含另一個長方形)

編輯:C++入門知識

POJ 1380 Equipment Box(判斷一個長方形能不能包含另一個長方形)


 9

 

題目大意:

給你兩個矩形的長和寬,問第一個長方形能不能包含第二個長方形。

 

解題思路:

這道題乍看上去好想很簡單,但其實細看的話,會有一種特殊情況很容易被忽略,如圖:

width=400

這種情況很容易被忽略,對於這種情況,需要解一下圖中的紅色或黃色三角形,判斷起來不是很麻煩,具體的看一下代碼就可以了,很好理解。

 

代碼:

 

#include 
#include 
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.
);
            continue;
        }
        else if( x*x+y*y > a*a+b*b){
            printf(Box cannot be dropped.
);
            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.
);  
             else
                printf(Box cannot be dropped.
);
            }
    }
    return 0;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved