Eu sou um iniciante em java e estou fazendo perguntas prática da internet.En tropeçou nessa questão e eu fiquei preso.
Escreva um método chamado distance que aceite quatrointeger coordena x1, y1, x2 e y2 como parâmetros e calcula a distância entre os pontos (x1, y1) e (x2, y2) no plano cartesiano. Por exemplo, a chamada de distância (1, 0, 4, 4) retornaria 5.0 e a chamada de distância (10, 2, 3, 5) retornaria 7.615773105863909.
public static int distance(int x1,int y1,int x2,int y2){
int d=(x2-x1)*(x2-x1)-(y2-y1)*(y2-y1))^0.5;
return (double)d;
}
2 coisas que eu gostaria de esclarecer.Como é que quando eu uso ^, eles continuam me dando um erro para dizer que não pode ser aplicada.Em segundo lugar, eu tento transmitir o dobro dentro de um dos números da equação.Mas continua me dando um erro também.
Respostas:
3 para resposta № 1^
é o operador XOR binário.
Usar Math.pow em vez de. Ou Math.sqrt (Melhor).
Você não deve lançar seu resultado para int
e depois de volta para double
. Apenas use
public static double distance(int x1,int y1,int x2,int y2){
return Math.sqrt((x2-x1)*(x2-x1)-(y2-y1)*(y2-y1)));
}
1 para resposta № 2
int d=(x2-x1)*(x2-x1)-(y2-y1)*(y2-y1))^0.5;
Em java, ^
é o operador XOR. Usar Math.pow()
.
Levantar ao poder de um meio, é o mesmo no roteamento quadrado, que pode ser realizado com Math.sqrt()
.
0 para resposta № 3
- Se você quiser poder usar Math.pow () em vez de ^ operator. Ou Math.sqrt ()
- Você não pode converter o dobro, porque seu método retorna int. Mude para dupla estática pública
0 para a resposta № 4
você pode usar Math.sqrt()
, é o método embutido em matemática de java.
0 para a resposta № 5
Primeiro você não pode retornar em dobro se sua ficção estiver esperando um valor int. Segundo você pode usar Math.pow()
ao invés de ^
, no seu caso você pode usar Math.Sqrt()
. Terceiro, se você quer um resultado duplo, você precisa converter os valores int que você está usando para dobrar:
public static double distance(int x1,int y1,int x2,int y2){
double d = Math.sqrt(((x2-x1)*(x2-x1)-(y2-y1)*(y2-y1)));
return d;
}