排位赛(二)| L题

【题目描述】

  给定两圆圆心坐标及半径,求两圆相交区域最大内切圆的圆心坐标及半径,误差范围1e-9,题目数据保证两圆有相交区域;

【输入格式】

  第一行三个数据代表 x1, y1,r1;

  第二行三个数据代表 x2, y2,r2;

【输出格式】

  依次输出x,y,r,以空格间隔,保留小数点后15位;

【解题思路】

  (1)利用初中平面几何求出答案表达式【先求半径再用比例】                !!!我当时竟然不会!!!

  (2)利用double存储答案,保证误差1e-9以内;

【正确代码】

复制代码
 1 #include <iostream>
 2 #include <cmath>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     double x1, y1, r1, x2, y2, r2, x, y, r;
 9     scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &r1, &x2, &y2, &r2);
10     
11     double d = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
12     r = (r1 + r2 - d) / 2;
13     
14     x = (r2 - r) * (x1 - x2) / d + x2;
15     y = (r2 - r) * (y1 - y2) / d + y2;
16     
17     printf("%.15lf %.15lf %.15lf\n", x, y, r);
18     
19     return 0;
20 }
复制代码

 

  

 

posted @   小菜珠的成长之路  阅读(88)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示