Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.math.BigInteger;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- // readinput
- Scanner in = new Scanner(System.in);
- ArrayList<String> expr = new ArrayList<>();
- String[] input = in.nextLine().split("");
- int status = -1;
- String mask = new String();
- for (int i = 0; i < input.length; i++) {
- if (input[i].equals(" ")) {
- if (status == 1) {
- expr.add(mask);
- mask = new String();
- status = 0;
- }
- continue;
- }
- if (input[i].equals(")") || input[i].equals("(") || input[i].equals("+") || input[i].equals("-") || input[i].equals("*")){
- if (status == 1) {
- expr.add(mask);
- mask = new String();
- status = 0;
- }
- expr.add(input[i]);
- continue;
- }
- mask += input[i];
- status = 1;
- }
- if (!(mask.equals(""))) {
- expr.add(mask);
- }
- //input ready
- int operator = 0;
- BigInteger sum = BigInteger.valueOf(0);
- for (int i = expr.size()-1; i >= 0; i--) {
- if (expr.get(i).equals("+")) {
- operator = 1;
- continue;
- } else if (expr.get(i).equals("-")) {
- operator = 2;
- continue;
- } else if (expr.get(i).equals("*")) {
- operator = 3;
- continue;
- }
- if (expr.get(i).equals(")")) {
- continue;
- }
- if (expr.get(i).equals("(")) {
- continue;
- }
- BigInteger temp = new BigInteger(expr.get(i));
- if (sum.compareTo(BigInteger.valueOf(0)) == 0) {
- sum = sum.add(temp);
- }
- if (operator > 0){
- switch (operator){
- case 1:
- sum = sum.add(temp);
- break;
- case 2:
- sum = temp.subtract(sum);
- break;
- case 3:
- sum = sum.multiply(temp);
- break;
- }
- operator = 0;
- }
- }
- System.out.println(sum);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement