Умножение поп-целых чисел - PullRequest
0 голосов
/ 30 марта 2019

Я пишу кусок кода, чтобы выскочить из стека и умножить.Я знаю, что могу напечатать целые числа pop'd, но как отслеживать целое число pop, если я выдвигаю другое?

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

static LStack<Integer> stack = new LStack<Integer>();


        static public void main (String[] args) 
        { 


        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);

        for(int i = stack.length(); i <= 0; i++) {
            stack.pop();


        }

        }

Ответы [ 2 ]

0 голосов
/ 30 марта 2019
static LStack<Integer> stack = new LStack<Integer>();

/ * fact () function * /

    public static void main(String[] args) {
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);




      System.out.println(calc(stack.pop()));
    }

    public static long calc(long n) {
        if (n <= 1)
            return 1;
        else
            return n * calc(n - 1);

}

    }

Это то, чем я в конечном итоге воспользовался, реализовал калькулятор из другого поста, похоже, он работает и позволяет мне выдвигать дополнительные целые числа на,Всем спасибо за уделенное время!

0 голосов
/ 30 марта 2019

Возможно, вам будет проще / понятнее использовать цикл while:

int result = stack.pop();
while (!stack.empty()) {
    result *= stack.pop();
}

Если вам нужно использовать петлю for:

int result;
for (result = stack.pop(); !stack.empty();)
    result *= stack.pop();
}

Независимо от этого, ключ должен инициализировать ваш конечный результат с верхним значением в стеке, а затем умножить его на каждый элемент, который вы выталкиваете из стека.

...