«Массив используется для хранения десяти целых чисел. Напишите программу Java, которая определяет и печатает квадратные числа, которые также являются нечетными числами из данного массива».квадратных чисел Java
Проблема у меня есть, как выяснить, является ли число в массиве квадратным числом. Я пробовал этот путь, но это не правильно!
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]);
}
}
}
}
Это есть выход это дает мне
run:
25
81
55
25
55
55
слишком это означает, что этот метод я использовал не увенчались успехом!
Я думаю, вы имеете в виду, что числа должны быть квадратами целых чисел только потому, что каждое положительное число является квадратом некоторого действительного числа. Следовательно, вы можете проверить, является ли 'y' целочисленным (т. Е. Часть дробей равна 0 или, по крайней мере, очень мала из-за ошибок точности). – Thomas
Проверьте это [ссылка] (http://stackoverflow.com/questions/295579/fastest-way-to-determine-if-an-integers-square-root-is-an-integer) – greenPadawan