C. 圆圈圈 几何水题

 有两个圆圈圈,如图所示,要把它们放在矩形里,必须让两个圈圈的底部和矩形的底部相切,求矩形的最短宽度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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值