"Ein Array wird verwendet, um zehn Integer-Zahlen zu speichern. Schreiben Sie ein Java-Programm, das die quadratischen Zahlen ermittelt und ausgibt, die auch ungerade Zahlen aus dem angegebenen Array sind."quadratische Zahlen Java
Das Problem, das ich habe, ist herauszufinden, ob die Zahl im Array eine quadratische Zahl ist. Ich habe es versucht, aber es ist nicht korrekt!
import java.math.*;
public class JavaApplication43 {
public static void main(String[] args) {
int[] no = {22, 44, 25, 89, 81, 55, 23, 25, 55};
for (int i = 0; i < no.length; i++) {
int x = no[i];
double y;
if (x % 2 != 0) {
y = Math.sqrt(x);
if (x == (Math.pow(y, 2)))
System.out.println(no[i]);
}
}
}
}
Dies ist die Ausgabe, die es mir
run:
25
81
55
25
55
55
wird auch das bedeutet, diese Methode, die ich verwendet, gibt nicht erfolgreich ist!
Ich denke, Sie meinen, die Zahlen müssen Quadrate von ganzen Zahlen nur sein, da jede positive Zahl ein Quadrat einer reellen Zahl ist. Daher könnten Sie überprüfen, ob y eine Ganzzahl ist (d. H. Der Bruchteil ist 0 oder zumindest sehr klein wegen Genauigkeitsproblemen). – Thomas
Überprüfen Sie diese [link] (http://stackoverflow.com/questions/295579/fastest-way-to-determine-if-an-integers-square-root--ist-integer) – greenPadawan