有两个圆圈圈,如图所示,要把它们放在矩形里,必须让两个圈圈的底部和矩形的底部相切,求矩形的最短宽度D
Input
输入文件有多行,每行两个整数,格式如下
R1 R2
R1,R2是两个圈圈的半径,0<R1,R2<=100
R1=0,R2=0时输入结束
Output
对应于输入的每一组数据,用单独的一行输出D的最小值,保留到两位小数。
Sample Input
3 3
0 0
Sample Output
12.00
来源: http://acm.bnu.edu.cn/v3/contest_show.php?cid=7670#problem/C
#include <cstdio>
#include <cmath>
double Cal(double R,double r)
{
double len=sqrt(R*r)*2;
if(R+r+len<2*R) return 2*R;
else return R+r+len;
}
int main(void)
{
int R,r;
while(~scanf("%d %d",&R,&r)&&R&&r)
printf("%.2lf\n",R>r?Cal(R,r):Cal(r,R));
return 0;
}