码迷,mamicode.com
首页 > 其他好文 > 详细

C. 圆圈圈

时间:2014-08-04 11:13:17      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   strong   io   文件   数据   

有两个圆圈圈,如图所示,要把它们放在矩形里,必须让两个圈圈的底部和矩形的底部相切,求矩形的最短宽度D

bubuko.com,布布扣

Input

 输入文件有多行,每行两个整数,格式如下

R1   R2
      
R1R2是两个圈圈的半径,0<R1,R2<=100
      
R1=0,R2=0时输入结束

Output

 对应于输入的每一组数据,用单独的一行输出D的最小值,保留到两位小数。

Sample Input

3 3
0 0

Sample Output

12.00

解题思路:

bubuko.com,布布扣bubuko.com,布布扣

如上图所示,分两种情况。

代码如下:

/*两种情况,1:两圆相差不大,两圆与底部相切的同时又分别与两边相切
2:两圆圈中一个特别的大,其直径就是最短宽度D,另一个圆则在它与边
形成的空隙中*/
#include<stdio.h>
#include<math.h>
int main()
{
    int r1,r2,max;
    double D;
    while(scanf("%d%d",&r1,&r2))
    {
        if(r1==0&&r2==0)
            break;
        max=r1>r2?r1:r2;
        D=sqrt((r1+r2)*(r1+r2)-(r1-r2)*(r1-r2));
        if(r1+r2+D<2.0*max)
        {
            printf("%.2lf\n",2.0*max);
        }
        else
        {
            printf("%.2lf\n",r1+r2+D);
        }
    }
    return 0;
}










C. 圆圈圈,布布扣,bubuko.com

C. 圆圈圈

标签:style   blog   http   color   strong   io   文件   数据   

原文地址:http://blog.csdn.net/yanghuaqings/article/details/38364593

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!