首页 » 技术分享 » 切割线定理

切割线定理

 

链接:https://ac.nowcoder.com/acm/contest/553/A
来源:牛客网
 

Chino的数学很差,因此Cocoa非常担心。这一天,Cocoa准备教Chino学习圆与直线的位置关系。
众所周知,直线和圆有三种位置关系:相离、相切、相割,主要根据圆心到直线的距离来判定。

现在我们来看看作业吧:

是以整点为圆心、正整数为半径的圆,整点分别是圆外一点以及轴上的一点,形成一条圆的割线(也就是和圆有两个交点)。现在Cocoa想要知道,的值是多少?
题目对于Chino来说太难啦,你能帮一帮Chino吗?

输入描述:

六个正整数x0, y0, r, x1, y1, y2

输出描述:

题目要求的答案,精确到整数

示例1

输入

复制

2 2 1 3 1 2

输出

复制

1

切割线定理:从圆外一点引圆的切线割线,切线长是割线和这点到割线与圆交点的两条线段长的比例中项。切割线定理的推论:从圆外一点引圆的两条割线,这一点到每条割线与圆的交点的两条线段长的积相等

#include<cstdio>
using namespace std;
typedef long long ll;
int main(){
	int x0,y0,r,x1,y1,y2;
	scanf("%d%d%d%d%d%d",&x0,&y0,&r,&x1,&y1,&y2);
	ll ans=(ll)(x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)-r*r;
	printf("%lld\n",ans);
	return 0;
} 

 

转载自原文链接, 如需删除请联系管理员。

原文链接:切割线定理,转载请注明来源!

0