Kame3

Математички израз

Nov 23rd, 2020
432
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Математички израз Problem 8 (2 / 3)
  2.  
  3. Да се напише алгоритам кој ќе пресметува (евалуира) математички израз составен од броеви и операциите за собирање (+) и множење (*).
  4.  
  5. Забелешка: Операцијата множење има предност пред операцијата собирање.
  6.  
  7. Име на класата: ExpressionEvaluator
  8.  
  9.  
  10.  
  11. import java.io.BufferedReader;
  12. import java.io.IOException;
  13. import java.io.InputStreamReader;
  14. import java.util.Stack;
  15.  
  16. public class ExpressionEvaluator {
  17.  
  18.     public static int evaluateExpression(String expression){
  19.         Stack<Integer> stack = new Stack<>();
  20.         String [] broevi = expression.split("\\+");
  21.         int rez = 0;
  22.         for(int i=0;i<broevi.length;i++){
  23.             int proizvod = 1;
  24.             String [] mnozenje = broevi[i].split("\\*");
  25.             for(int j=0;j<mnozenje.length;j++){
  26.                 proizvod *= Integer.parseInt(mnozenje[j]);
  27.             }
  28.             stack.push(proizvod);
  29.         }
  30.         while(!stack.isEmpty()){
  31.             rez += stack.pop();
  32.         }
  33.         return rez;
  34.  
  35.     }
  36.     public static void main(String[] args) throws IOException {
  37.         BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
  38.         System.out.println(evaluateExpression(input.readLine()));
  39.     }
  40.  
  41. }
  42.  
  43.  
  44.  
  45.  
  46.  
  47. Sample input
  48.  
  49. 2+2*2*2*2*2*2+2*2
  50.  
  51. Sample output
  52.  
  53. 70
  54.  
  55.  
RAW Paste Data