UVA 375

来源:互联网 发布:淘宝网详情页图片尺寸 编辑:程序博客网 时间:2024/06/10 00:11

题目大意:一个等腰三角形的内切圆,以及这个内切圆与等腰三角形两腰的内切圆,一直往下求内切圆,知道内切圆半径小于0.000001。求所有内切圆的周长和。image.png

解题思路:先求出第一个内切圆的半径(底边与高的乘积除以三角形周长等于内切圆的半径),之后的内切圆半径都是按比例缩小。

ac代码:

#include <iostream>#include <cmath>#define Pi acos(-1.0) using namespace std;int n;double width, high, waist, high2, ratio;double r, circle;int main(){scanf("%d", &n);while (n--){scanf("%lf%lf", &width, &high);circle = 0;waist = sqrt( pow(width/2, 2) + pow(high, 2));r = high * width / (width + 2 * waist);high2 = high - 2 * r;  ratio = high2 / high;while (r > 0.000001){circle += 2*Pi*r;r *= ratio;}printf("%13.6lf\n", circle);if (n)printf("\n"); }return 0;}
原创粉丝点击