题目:传送门。(需要下载PDF)
题意:给定一个长方形,在长方形内部画三个相同的正方形,问正方形的边长最大是多大。
题解:根据长宽比例可以算出三种情况,如果长比宽大三倍以上,那么正方形边长就是宽;如果长在宽的1.5倍到3倍之间,那么正方形边长就是长/3;如果长在宽的1到1.5倍之间,那么就看做是在长方形内部画一个田字,正方形边长就是宽/2。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
freopen("alex.in","r",stdin);
freopen("alex.out","w",stdout);
double h,w;
while(scanf("%lf%lf",&h,&w)!=EOF)
{
double ans;
if(w>h) swap(w,h); //h大
if(h>*w)
ans=w;
else if(h>3.0*w/2.0)
ans=h/3.0;
else
ans=w/2.0;
printf("%.6f\n",ans);
}
return ;
}