概述
求上网
描述
小明是一个ACM爱好者,某天他和小伙伴们在外面玩耍,突然,他想起来今天是ACM世界总决赛的日子,而且比赛马上就要开始了,小明十分想看比赛的视频直播,于是马上掏出自己的小平板准备连WIFI看直播。
现在给你小明的位置和若干WIFI热点的位置及每个热点的覆盖半径,请你判断小明所在的位置能不能连上网。
输入
输入包含多组测试数据。
每组第一行输入一个整数n(0<=n<=100),表示WIFI热点的个数。当n=0时,输入结束。
接下来n行,每行输入3个浮点数x,y,r(-500<=x,y<=500,0<r<=500),表示一个WIFI热点的坐标位置和覆盖半径,可能会有热点重合。
每组最后一行再输入两个浮点数a和b(-500<=a,b<=500),表示小明的坐标位置,可能会和WIFI热点的坐标重合。
输出
对于每组输入,如果小明所在的位置能连上网,则输出“YES”,否则输出“NO”。
输入样例 1
2
-1.00 1.00 1.00
2.00 1.00 1.00
0.51 0.88
3
0.00 0.00 1.00
1.00 1.00 1.00
-5.00 3.00 3.00
0.50 0.50
1
-1.00 -1.00 1.00
0.00 -1.00
0
输出样例 1
NO
YES
YES
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n==0)break;
double x[100],y[100],r[100];
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i]>>r[i];
}
double x1,y1;
int flag=0;
cin>>x1>>y1;
for(int i=1;i<=n;i++)
{
if(sqrt((x1-x[i])*(x1-x[i])+(y1-y[i])*(y1-y[i]))<=r[i])
flag=1;
//点到圆点的距离小于等于半径
else
continue;
}
if(flag)cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
最后
以上就是精明小伙为你收集整理的求上网(简单数学题)的全部内容,希望文章能够帮你解决求上网(简单数学题)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复