2014-11-08 2 views
-3

Я пытаюсь найти способ подсчета числа, введенного пользователем, а затем добавить каждое второе значение, когда я подсчитываю до 0для сокращения циклов на 2 до 0 и суммирования значений, которые были сгенерированы до получения 0

например.

{пользователь вводит 10

программа отсчитывает 8,6,4,2,0

затем добавить 10 + 8 + 6 + 4 + 2 + 0 = 30

}

Как это сделать, используя вложенный цикл петли

До сих пор я мог только вводить данные пользователя и каждый раз обращать внимание на 2. Я добираюсь до 0, но не могу добавить каждое второе значение. Мой код:

до сих пор, он просто считает до 0

общественного класса Week5b { статический сканер userVal = новый сканер (System.in);

public static void main(String[] args) { 
    //printTable(); 
    reverseAddSkip(); 
public static void reverseAddSkip(){  

     System.out.println("Please enter an integer"); 


     for (int i = userVal.nextInt(); i >=0; i-=2){ 


     System.out.println(i) ; 
     }/* this creates a loop where the variable i is equal to user input; 
      the condition for the loop to continue is whether the input is larger or equal to 0; the update part of the loop takes 2 away each time, as if it were -- (which takes away one each time) */ 

} 

} Как бы написать, что математически? Добавление суммы i- = 2 к исходному значению i. Вы вводите 11, он насчитывает 9 7 5 3 1, затем добавляет 11 9 7 5 3 1. и дает вам сумму.

не знаю, как суммировать каждые 2 числа, уменьшающиеся на 2, от значения пользователя.

Вы вводите поставил 50, он отсчитывает от 2 до 0 вы положили 51 он отсчитывает от 2 до 0 , но я не нашел далеко просуммировать все тогда цифры, которые были созданы, прежде чем попасть к 0 :/

+1

Как объявить переменную Int в Java? Как добавить два числа в Java? –

ответ

0

NoGlitching,

Вы должны смотреть на поток управления вашей программы - что сказать, путь он берет на исполнение.

Вы также должны посмотреть на , используя больше переменных.

Я дам вам псевдокод я хотел бы использовать, потому что я думаю, что это важно для вас, чтобы иметь возможность написать код самостоятельно:

  • Сделать новое целое под названием OriginalInput.
  • Создайте новое целое число под названием RunningTotal.
  • Set RunningTotal to 0.
  • Сохраните вход пользователя в оригинальном вводе.
  • Петля через исходный вход.
    • Распечатайте текущий оригинал.
    • Добавьте текущий исходный вход в RunningTotal.
  • Когда цикл закончен:
    • печати RunningTotal.

Я надеюсь, что это помогает.

+0

Цените свою помощь, но я в тупике, потому что мне нужно сделать это с помощью вложенных циклов. В принципе, я думаю, что есть математическое решение. i- = 2 в конечном счете 0. так что даже i- = 2 + i 8 = 2 + 8 = 14? это будет добавление 6 и это первые 2 числа, отсчитывающие на 2, но я не могу выразить, как это делается на бумаге :( – NoGlitching

0

EDIT:

 // First you equalize j with i 

     input = userVal.nextInt(); 
     j = i; // Put the user input in j first. for instance 11. 

    for (int i = input; i >=0; i-=2) 
     { 
      if (i >= 0) // If i is not below 0 
       { 
       j += i; // Add to j what i has now (everytime -2) 
       // put a system out print here to show what was added 
       // J starts as 11 and adds 9,7,5,3,1 then nothing. So it ends as 36. 
       } 


      } 
    // outside the For loop after it ends but INSIDE your method, you get the sum from the variable j! 
+0

Пробовал, но кажется, просто отсчитывает от числа, которое я вводил в 0, я хочу добавить все числа, которые я должен подсчитать, чтобы достигнуть 0, поэтому, если кто-то вводит 12, программа должна выводить 42 – NoGlitching

+0

Вот решение на моем же отредактированном мной комментарии. Надеюсь, что это поможет. Примите его, если дело решится. В противном случае, пожалуйста, оставьте ответ –

+0

Нет, это имеет смысл, но не работает. Дело в том, что мне просто нужно найти способ либо запомнить цифровую строку, либо сохранить каждое значение, поскольку оно отсчитывает в цикле переменную. знайте, как это сделать. Так что, представьте себе, i- = 2 .... так что каждый раз, когда 2 отбирается, это значение затем сохраняется в переменной, очевидно, в первый раз, когда оно не уменьшается или не увеличивается, поэтому исходный значение также будет храниться в той же переменной, дающей правильный результат, и все еще указывая на поле, в котором i t отсчитывает от 2 до 0, прежде чем печатать ответ – NoGlitching

Смежные вопросы