给定具有中心(0,0)和半径r(整数> 0)的圆,找到圆周上的点数(x,y),使得x和y都是整数。当x ^ 2 + y ^ 2 = r ^ 2时,点(x,y)被认为是在圆周上。
输入:单行,即圆的半径。
我无法得到正确答案。例如,如果radius
为5,则圆周上应该有12个点,但我得到4个。
我写的代码是:
static int findNumOfIntegerPoints(int radius)
{
static int count =0;
for (int x=0; x<=radius; x++)
{
for (int y=0; y <=radius; y++)
{
if ((x^2)+(y^2) == (radius^2))
{
count++;
}
continue;
}
return count;
}
答案 0 :(得分:1)
给定一个圆心,中心(0,0)和半径r(整数> 0),找到 圆周上的点数(x,y)使得x和y都是 整数。点(x,y)被认为是在圆周上 x ^ 2 + y ^ 2 = r ^ 2.
我修改了你的功能,以便考虑到你忽略的负坐标。我还更正了您的x^2
和y^2
来调用Math.pow(x,2)
,因为Java ^
运算符不是您想要的。
class Circle {
static int findNumOfIntegerPoints(int radius)
{
int count =0;
for (int x=-radius; x<=radius; x++)
{
for (int y=-radius; y <=radius; y++)
{
if (Math.pow(x,2)+Math.pow(y,2) == Math.pow(radius,2))
{
count++;
}
}
}
return count;
}
public static void main(String args[]) {
System.out.println(findNumOfIntegerPoints(5));
}
}
答案 1 :(得分:-1)
import java.util.*;
public class coordinates {
public static void main(String[] args) {
int radius=0;
Scanner obj=new Scanner(System.in);
radius=obj.nextInt();
int points=0;
for(int x=-radius;x<=radius;x++)
{
for(int y=-radius;y<=radius;y++)
{
double dist=Math.sqrt(x*x + y*y);
if(dist==radius)
{
points++;
}
}
}
System.out.println("Total no of integer co-ordinates : "+points);
obj.close();
}
}