В то время как логическое условие цикла, логическая проблема, возвращающая сумму квадратов <= 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;
}