В то время как логическое условие цикла, логическая проблема, возвращающая сумму квадратов <= n (мой первый вход

У меня проблемы с логикой и рассуждениями с помощью цикла while, и я возвращаю сумму положительных чисел n и сумму входных n в квадрате. Пожалуйста, смотрите мой код и помогите, когда это возможно, спасибо.

Упражнение было: /* Напишите короткий Java-метод, который принимает целое число n и возвращает сумму квадратов всех натуральных чисел, меньших или равных n. * */

public class ch1dot7 
{
    public static void main (String[]args)
    {
        Scanner input = new Scanner(System.in);
    int n, m = 0, sum = 0;

    System.out.print("Please enter a value for n: ");
    n = input.nextInt();

    System.out.println("n is currently: "+n);

    if (n <= 0)
    {
        System.out.print("Please enter a value that is higher than 0   (integer)");
        n = input.nextInt();
    }

    while  (sum > n)
    {

        System.out.print("Please enter a value for m (enter a value greater     than n to exit): ");
        m = input.nextInt();

        if (m < n)
        {
            sum += m*m;
            System.out.println("sum of the squares is: " +sum); 
        }

        sum += m*m;
    }

}//end main


}//end class

1 ответ

Вы неправильно поняли назначение. Назначение не просит вас принять входные данные от пользователя. Единственный вход в метод n,

Вопрос состоит в том, чтобы создать метод, который принимает целое число n и возвращает сумму квадратов всех натуральных чисел, меньших n.

Например, если n равно 5, вам необходимо сложить квадраты чисел меньше пяти, то есть чисел от 1 до 4, следующим образом:

(1*1) + (2*2) + (3*3) + (4*4)

1 + 4 + 9 + 16 = 30

Ваш метод должен вернуть 30

В вашем while Цикл вы запрашиваете пользователя для дополнительного ввода и сохранения его в переменной m, Это не нужно. Переменная m не нужен

Ваш while Цикл должен продолжаться, пока переменная счетчика меньше n, и счетчик должен увеличиваться в каждом цикле. Начните счетчик с 1 и продолжайте цикл, пока этот счетчик меньше n.

public static int sumOfSquares(int n) {
    // here you can check if n is greater than 0

    int counter = 1;
    int sum = 0;
    while (counter < n) {
        // [ sum up the square of the counter ]
        counter++;
    }

    return n;
}
Другие вопросы по тегам