Я работаю над программой, в которой пользователь дает два числа. Первым является число, до которого счетчик будет считать. Второй - это приращение, которое он будет делать. Программа имеет начальный номер, равный единице, и должна сложить вместе все числа, которые составляют первое заданное число. Например, пользователь вводит числа 7 и 2. Таким образом, программа должна сделать следующее: 1+3+5+7 и будет равна 16. Я не могу понять, что я делаю неправильно в своей программе.
System.out.print("Please enter your first positive number: ");
int n1 = user.nextInt();
System.out.print("Please enter your second positive number: ");
int n2 = user.nextInt();
int sum = 1;
while(sum <= n1)
{
sum += n2;
}
System.out.println("Sum = " + sum);
1 ответ
На данный момент вы останавливаетесь, когда ваша сумма превышает n1
. И для каждого цикла вы добавляете n2
, а не последнее значение, увеличенное на n2
.
Попробуйте это, которое использует цикл for для перебора реальных значений приращения (которые увеличивают каждую итерацию):
System.out.print("Please enter your first positive number: ");
int n1 = user.nextInt();
System.out.print("Please enter your second positive number: ");
int n2 = user.nextInt();
// start your sum at zero
int sum = 0;
// loop increasing the increment value until it exceeds the users input
for(int increment = 1; increment <= n1; increment += n2) {
sum += increment;
}
System.out.println("Sum = " + sum);
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.