题意:

已知等腰三角形的高H,底边长B,这时有一个内切圆C,

以内切圆C和长度为B对应的角的角平分线的交点做切线.

切线与角平分线相交,此时切线,和俩边又会出现一个小的等腰三角形,也有一个小的内切圆C1,内切圆一直往上堆,直到内切圆的半径r<0.000001

计算内切圆,C0,C1...Cn的周长和,最后一个内切圆r>0.000001

画图,利用面积相等推算公式

#include<stdio.h>
#include<iostream>
#include <strstream>
#include<string>
#include<memory.h>
#include<math.h>
#include<sstream>
using namespace std;
#define pi M_PI;
int main()
{
//freopen("d:\\1.txt", "r", stdin);
int t;
cin>>t;
while(t--)
{
double B,H;
cin>>B>>H;
double b = B/2;
double a;
double r = b*H/(a+b);
double sum = 0.0;
while(r>0.000001)
{
a = sqrt(H*H+b*b);
r = b*H/(a+b);
if(r<0.000001)
break;
sum += M_PI*2*r;
H = H-2*r;
b = (a-b)*b/(a+b);
}
printf("%13.6f\n",sum);
if(t)
printf("\n");
}
}

  

UVA375的更多相关文章

随机推荐

  1. CodeForces - 1087F:Rock-Paper-Scissors Champion(set&数状数组)

    n players are going to play a rock-paper-scissors tournament. As you probably know, in a one-on-one ...

  2. L2-013. 红色警报

    战争中保持各个城市间的连通性非常重要.本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报.注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不 ...

  3. win10系统把文件夹固定到任务栏

    为某个文件夹创建快捷方式 右键该快捷方式,选择固定到开始屏幕 点击win图标进入开始屏幕,在屏幕的右侧有刚才固定的快捷方式 右键该快捷方式,选择固定到任务栏即可.

  4. ppt罗列项排版

    关于罗列项的排版(1,....2,......3,......4,........)

  5. 实习第二天-今年第一场雨-方法的重载(马上想到println()函数和abs(函数))

    在C语言中 调用函数abs()返回一个整数的绝对值, fabs(返回一个单精度浮点型的绝对值)若要返回这些数的绝对值,则必须记住这些函数的名字 java可以用方法的重载:即是方法名必须相同,参数必须不 ...

  6. watchtower 自动更新容器的工具

    watchtower 自动更新容器的工具 安装 使用docker docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/ru ...

  7. #define WIN32_LEAN_AND_MEAN 的作用

    今天看了用mysql的库+vc连接数据库,结果我用mfc application向导建立一个project,然后加入#include "mysql.h"(已经设置好了环境),编译出 ...

  8. 嵌入式QT程序的汉字显示

    因底层服务程序全是GBK格式的,所以QT程序要全部更改编码方式. 1.QT程序编码更改 creator->edit->更改编码方式GBK main程序中做如下修改,并注意语句次序 int ...

  9. JS判断IP的正则表达式

    <html> <head> <title>最简洁的IP判断正则表达式</title> <meta http-equiv="Content ...

  10. vue-router 结合源码分析原理

    路由响应过程: 浏览器发出请求 服务器监听到num端口(或443)有请求过来,并解析url路径 根据服务器的路由配置,返回相应信息(可以是 html 字串,也可以是 json 数据,图片等) 浏览器根 ...