Введите число n, затем выведите все четные квадраты от 1 до n - PullRequest
0 голосов
/ 12 апреля 2019

Мне нужна помощь, чтобы выяснить, как вывести четные числа от 1 до N (n - это число, введенное пользователем).

Вот что у меня есть.

import java.util.*;

public class HelloWorld{

     public static void main(String []args){
         int n;
         int i = 0;

        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a Number");
        n = scan.nextInt();

        for(i=1; i<n; i++){
            if(i%2==0)
            i = i*i;
            System.out.println(i);
        }    
    }
}

Теперь это выводит неверный вывод.Я хотел бы знать, как он получает от 4 до 16 и до 36.

Пример ввода: 45

Ожидаемый результат:

4
16
36

Что это такоеЯ делаю не так?

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Вы уже увеличиваете переменную i в определении for, вам не нужно снова увеличивать внутри для блока. Также начните с 2 и продолжайте, добавляя 2 на каждом шаге для более эффективной реализации.

for(i=2; i*i<n; i+=2){
        System.out.println(i*i);
    }    
1 голос
/ 12 апреля 2019

Во-первых, не изменяйте значение i внутри цикла for. Вместо того, чтобы менять i на i*i, просто выведите i*i, используя оператор System.out.println(i*i); Во-вторых, вы также забыли о фигурных скобках после выражения if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...