菜菜

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

题意:

已知等腰三角形的高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");
	}
}

  

posted on 2017-05-11 16:27  好吧,就是菜菜  阅读(136)  评论(0编辑  收藏  举报