UVA375
题意:
已知等腰三角形的高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的更多相关文章
随机推荐
- 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 ...
- L2-013. 红色警报
战争中保持各个城市间的连通性非常重要.本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报.注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不 ...
- win10系统把文件夹固定到任务栏
为某个文件夹创建快捷方式 右键该快捷方式,选择固定到开始屏幕 点击win图标进入开始屏幕,在屏幕的右侧有刚才固定的快捷方式 右键该快捷方式,选择固定到任务栏即可.
- ppt罗列项排版
关于罗列项的排版(1,....2,......3,......4,........)
- 实习第二天-今年第一场雨-方法的重载(马上想到println()函数和abs(函数))
在C语言中 调用函数abs()返回一个整数的绝对值, fabs(返回一个单精度浮点型的绝对值)若要返回这些数的绝对值,则必须记住这些函数的名字 java可以用方法的重载:即是方法名必须相同,参数必须不 ...
- watchtower 自动更新容器的工具
watchtower 自动更新容器的工具 安装 使用docker docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/ru ...
- #define WIN32_LEAN_AND_MEAN 的作用
今天看了用mysql的库+vc连接数据库,结果我用mfc application向导建立一个project,然后加入#include "mysql.h"(已经设置好了环境),编译出 ...
- 嵌入式QT程序的汉字显示
因底层服务程序全是GBK格式的,所以QT程序要全部更改编码方式. 1.QT程序编码更改 creator->edit->更改编码方式GBK main程序中做如下修改,并注意语句次序 int ...
- JS判断IP的正则表达式
<html> <head> <title>最简洁的IP判断正则表达式</title> <meta http-equiv="Content ...
- vue-router 结合源码分析原理
路由响应过程: 浏览器发出请求 服务器监听到num端口(或443)有请求过来,并解析url路径 根据服务器的路由配置,返回相应信息(可以是 html 字串,也可以是 json 数据,图片等) 浏览器根 ...