Crazy

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

Oct 31st, 2017
1,039
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.15 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3.  
  4. public class ArithmeticExpression {
  5.     static int operacija(int a,int b, char znak){
  6.         if(znak =='+')
  7.             return a+b;
  8.         else
  9.             return a-b;
  10.     }
  11.     // funkcija za presmetuvanje na izrazot pocnuvajki
  12.     // od indeks l, zavrsuvajki vo indeks r
  13.    
  14.     static int presmetaj(char c[], int l, int r) {
  15.         // Vasiot kod tuka
  16.         int i=l+1,brojac=0;
  17.         if(r-l==5)
  18.             return operacija(c[l+1]-48,c[r-1]-48,c[l+2]);
  19.         if(l==r)
  20.             return c[l]-48;
  21.         while(i<r){
  22.             if(c[i]=='(')
  23.                 brojac++;
  24.             else if(c[i]==')')
  25.                 brojac--;
  26.             if(brojac==0)
  27.                 return operacija(presmetaj(c,l+1,i),presmetaj(c,i+2,r-1),c[i+1]);
  28.             i++;
  29.         }
  30.         return 0;
  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. }
Advertisement
Add Comment
Please, Sign In to add comment