链接: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;
}
转载自原文链接, 如需删除请联系管理员。
原文链接:切割线定理,转载请注明来源!