язык java
дано выражение. нужно найти его значение. при этом ИСПОЛЬЗОВАТЬ КАК МОЖНО МЕНЬШЕ ПЕРЕМЕННЫХ.
как это сделать? выражение простейшее что-то типа 1*2+3*4/5*6+7

  • a = 1d;
    a *= 2d;
    b = 3d;
    b *= 4d;
    b /= 5d;
    b *= 6d;
    b += 7d;
    a += b;
    System.out.println(a);

    Хинт:
    В обратной польской нотации (смотри википедию) выражение 1*2+3*4/5*6+7 выглядит так 1 2 * 3 4 * 5 / 6 * 7 + +
    Что означает следующее:
    1. ВВЕДЕНО: 1. ДЕЙСТВИЕ: поместить в стек 1. СТЕК: 1
    2. ВВЕДЕНО: 2. ДЕЙСТВИЕ: поместить в стек 2. СТЕК: 2, 1
    3. ВВЕДЕНО: *. ДЕЙСТВИЕ: забрать два верхних числа из стека, перемножить их и результат поместить в стек. СТЕК: 2
    4. ВВЕДЕНО: 3. ДЕЙСТВИЕ: поместить в стек 3. СТЕК: 3, 2
    5. ВВЕДЕНО: 4. ДЕЙСТВИЕ: поместить в стек 4. СТЕК: 4, 3, 2
    6. ВВЕДЕНО: *. ДЕЙСТВИЕ: забрать два верхних числа из стека, перемножить их и результат поместить в стек. СТЕК: 12, 2
    7. ВВЕДЕНО: 5. ДЕЙСТВИЕ: поместить в стек 5. СТЕК: 5, 12, 2
    8. ВВЕДЕНО: /. ДЕЙСТВИЕ: забрать два верхних числа из стека, поделить их и результат поместить в стек. СТЕК: 2.4, 2
    9. ВВЕДЕНО: 6. ДЕЙСТВИЕ: поместить в стек 6. СТЕК: 6, 2.4, 2
    10. ВВЕДЕНО: *. ДЕЙСТВИЕ: забрать два верхних числа из стека, перемножить их и результат поместить в стек. СТЕК: 14.4, 2
    11. ВВЕДЕНО: 7. ДЕЙСТВИЕ: поместить в стек 7. СТЕК: 7, 14.4, 2
    12. ВВЕДЕНО: +. ДЕЙСТВИЕ: забрать два верхних числа из стека, сложить их и результат поместить в стек. СТЕК: 21.4, 2
    12. ВВЕДЕНО: +. ДЕЙСТВИЕ: забрать два верхних числа из стека, сложить их и результат поместить в стек. СТЕК: 23.4
    На вершине стека результат - 23.4

  • С принтлайном нужно не забывать про скобки.
    Можно использовать return.
    public static double calc(){
    return 1*2+3*4/5*6+7;
    }