kacci97

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

Nov 10th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3.  
  4. public class ArithmeticExpression {
  5.  
  6. static int operate(int op, int op2, char op3) {
  7. if (op3 =='+')
  8. return op + op2;
  9. else
  10. return op - op2;
  11. }
  12.  
  13. static int presmetaj(char c[], int l, int r) {
  14.  
  15. if (r - l ==4)
  16. return operate(c[l+1]-'0',c[l+3]-'0',c[l+2]);
  17.  
  18. int flag =0;
  19. int i=l;
  20.  
  21. while ((c[i] != '+'&&c[i] != '-') || flag !=1){
  22.  
  23. if (c[i] == '(')
  24. flag++;
  25. else if (c[i] == ')')
  26. flag--;
  27.  
  28. ++i;
  29. }
  30. return operate(presmetaj(c,l+1,i-1),presmetaj(c,i+1,r-1),c[i]);
  31. }
  32.  
  33. public static void main(String[] args) throws Exception {
  34. int i,j,k;
  35.  
  36. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  37.  
  38. String expression = br.readLine();
  39. char exp[] = expression.toCharArray();
  40.  
  41. int rez = presmetaj(exp, 0, exp.length-1);
  42. System.out.println(rez);
  43.  
  44. br.close();
  45.  
  46. }
  47.  
  48. }
Add Comment
Please, Sign In to add comment