Используйте метод квадратного корня Java Math для вычисления квадратного корня от 1 до 1000. Затем выведите только целые числа
Используйте метод квадратного корня Java Math для вычисления квадратного корня от 1 до 1000. Выведите только целые числа. Не начинайте с вычисления квадратов, а затем распечатывая квадратный корень этого числа. Рассчитайте все квадратные корни и определите, являются ли они целыми числами.
Я посмотрел несколько ответов, которые, казалось, танцевали вокруг решения, но ни один из них не был таким лаконичным. Вот что у меня так далеко.
public class Assignment9
{
public static void main(String[] args)
{
double root = 1;
double sqrt = Math.sqrt(root);
do
{
if(sqrt % 1 == 0)
{
System.out.printf("%.0f\t%.0f%n", root, Math.sqrt(root));
root++;
}
}
while(root <= 1000);
}
}
Выходные данные печатают квадратные корни, но продолжают округлять каждое число. Я хочу распечатать только одно число на идеальный квадрат (например, 1 1, 4 2, 9 3 и т. Д.). Я понимаю вопрос, но каждый раз, когда я запускаю программу, я получаю следующее:
1 1
2 1
3 2
4 2
5 2
6 2
7 3
8 3
9 3
10 3
...
1000 32
2 ответа
Вы не обновляете значение sqrt. Это всегда просто 1, и, следовательно, sqrt % 1 всегда 0.
Поскольку это, очевидно, задание, я бы лучше дал несколько советов вместо решения.
Важные моменты для размышления:
- Думать о том, как
sqrt
обновляется в цикле. - Всякий раз, когда
sqrt % 1 == 0
ложно, что происходит сroot
(и как это влияет на цикл?)
Незначительные баллы:
- Вы действительно нуждаетесь
root
быть двойником?