当前位置: 首页 > news >正文

【OJ】两个圆

在这里插入图片描述


📚Description:

直角坐标系内现有两个半径相等的圆,问两圆的位置关系。

位置关系有:重合,相切,相离,相交;

若两圆相交,需要求出两圆的重叠面积。


Input:

输入包含多组数据,每组数据为一行,包括5个实数x1,y1,x2,y2,r,分别代表第一个圆圆心的横纵坐标,第二个圆圆心的横纵坐标以及它们的半径,-20 < x1,y1,x2,y2,r < 20。


🔑Output:

对于每组数据,输出占一行,位置关系有:重合,相切,相离,相交,若两圆相交,则继续输出一个空格,再输出两圆的重叠面积,面积保留2位小数;


👨‍🏫 Sample Input:
0 0 0 0 1
0 0 1 0 0.5
0 0 1 0 0.3
0 0 1 0 1

💡Sample Output:
重合
相切
相离
相交 1.23


🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗

🙋‍思路

本题关键在于两个圆心距离和半径的对比
本题设置了两个半径相同的圆
简化了一定的难度
通过比较半径和圆心距离可以直接划分出四种状态
其中相交状态下需要计算面积

重叠面积具体介绍如下:

在这里插入图片描述
假设是半径为r的两个圆相交
因为半径相等,所以从各种情况都可以视为O1和O2在同一水平线上(为了方便计算)
且O1AO2B一定是一个菱形

接下来就是面积的计算
重叠的面积其实就是两个扇形面积减去菱形面积
在这里插入图片描述
📢📢📢 注意C语言中弧度与角度的转换!
📢📢📢 注意C语言中弧度与角度的转换!
📢📢📢 注意C语言中弧度与角度的转换!


AC Code

#include <stdio.h>
#include <math.h>
#define PI 3.1415926int main(){double x1,y1,x2,y2,r;double len;   //记录两个圆心的距离 while(scanf("%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&r)!=EOF){float m;   //角度 float s;   //重合面积 len = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));if(len == 2*r){   //相切 printf("相切\n");}else if(x1==x2 && y1==y2){  //重合 printf("重合\n");}else if(len > 2*r){  //相离 printf("相离\n");}else{    //相交 m = acos(0.5*len/r)*180.0/PI;s = m/90*PI*r*r-r*sin(m*PI/180)*len;printf("相交 %.2lf\n",s);} } 
}
http://www.lryc.cn/news/11001.html

相关文章:

  • 一文读懂澳洲医疗:白菜价的药物怎么领?
  • scrum看板视图切换时间线视图做项目管理
  • 10、MySQL查询优化
  • C++模板(一)
  • 【TypeScript】TypeScript的基础类型(string,number,boolean,void,null,undefined):
  • 【C语言】 详谈指针
  • 内网渗透(三十八)之横向移动篇-pass the key 密钥传递攻击(PTK)横向攻击
  • 教你快速学会画动漫人物表情
  • Qt系列:调用Edge浏览器示例
  • 内推|香港外企急招ETL工程师!数据分析师+Python开发+运营专家
  • zlib压缩原理
  • 论文阅读笔记《DEEP GRAPH MATCHING CONSENSUS》
  • 华为OD机试题 - 开放日活动(JavaScript)
  • (考研湖科大教书匠计算机网络)第四章网络层-第八节:网际控制报文协议ICMP
  • 华为OD机试 - GPU 调度 | 备考思路,刷题要点,答疑 【新解法】
  • 华为OD机试题 - 任务总执行时长(JavaScript)
  • 还在想假期去哪玩?直接做一个旅游攻略小程序
  • 十四、vue3项目如何使用three.js
  • python 向excel表中添加新的sheet页或者向旧sheet中写入数据
  • RPC-grpc实践
  • JavaEE——MyBatis配置文件的详细介绍
  • bwmarrin/snowflake生成ID重复问题排查记录
  • 操作系统题目收录(十)
  • IOS 自动化测试环境搭建
  • 系统设计原则
  • 推荐130个网站,非常实用,比涨工资都重要
  • 手机棋牌游戏开发的流程是怎样的?
  • 浅谈C++函数重载
  • 数据分析spss应急考试
  • Handler postDelayed的实现原理