Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Математички израз Problem 8 (2 / 3)
- Да се напише алгоритам кој ќе пресметува (евалуира) математички израз составен од броеви и операциите за собирање (+) и множење (*).
- Забелешка: Операцијата множење има предност пред операцијата собирање.
- Име на класата: ExpressionEvaluator
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Stack;
- public class ExpressionEvaluator {
- public static int evaluateExpression(String expression){
- Stack<Integer> stack = new Stack<>();
- String [] broevi = expression.split("\\+");
- int rez = 0;
- for(int i=0;i<broevi.length;i++){
- int proizvod = 1;
- String [] mnozenje = broevi[i].split("\\*");
- for(int j=0;j<mnozenje.length;j++){
- proizvod *= Integer.parseInt(mnozenje[j]);
- }
- stack.push(proizvod);
- }
- while(!stack.isEmpty()){
- rez += stack.pop();
- }
- return rez;
- }
- public static void main(String[] args) throws IOException {
- BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
- System.out.println(evaluateExpression(input.readLine()));
- }
- }
- Sample input
- 2+2*2*2*2*2*2+2*2
- Sample output
- 70
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement