这就是问题:
给定一个带有声明double centerX = 0,centerY = 0的圆圈,取 半径和坐标为x,y的点。写一个程序 计算点是否位于圆内(包括 边界)。
公式:
两点A(x1,y1)和B(x2,y2)之间的距离为:
((x2-x1)^ 2 +(y2-y1)^ 2的平方根)
输入规范:
第一行将包含半径r。
第二行包含x和y。每个值都是(x,y)坐标 使得x,y> 0。
输出规格:
如果点在圆圈内打印"点(x,y)在 圆圈",否则打印"点(x,y)在圆圈外面#34;。
示例输入1:
7
2 5
示例输出1:
点(2,5)位于圆圈内
示例输入2:
2
9 4
示例输出2:
点(9,4)位于圆圈外
说明:
在样本输入1中,(0,0)和(2,5)之间的距离是5.3851 它小于半径7.因此该点在圆圈内。 而在另一组输入中,该点在圆圈之外 因为原点和(9,4)之间的距离是9.8488 大于给定半径2。
现在这是我的代码:
import java.util.Scanner;
import java.math.*;
class Circ{
public static void main(String args[]){
Scanner s=new Scanner(System.in);
int r=s.nextInt();
int x=s.nextInt();
int y=s.nextInt();
if(x>0&&y>0){
double dist=Math.sqrt(Math.pow(x-0,2)+Math.pow(y-0,2));
if(dist>r){
System.out.println("The point ("+x+","+y+") is outside the circle");
}else if(dist<=r){
System.out.println("The point ("+x+","+y+") is inside the circle");
}
}
}
}
它提供了正确的输出但没有通过测试用例?
答案 0 :(得分:0)
import java.util.Scanner;
public class circleOfCodeG{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int r,x,y;
double dis;
r=sc.nextInt();
x=sc.nextInt(); y=sc.nextInt();
dis=Math.sqrt((x*x)+(y*y));
if(dis<=r)
System.out.println("The point ("+x+", "+y+") is inside the circle");
else
System.out.println("The point ("+x+", "+y+") is outside the circle");
}
}
试试这个。我敢肯定,这将“满足”测试用例“。 :)