AOJ0087 Strange Mathematical Expression

問題リンク Strange Mathematical Expression

  • 解法

逆ポーランド記法の式を評価できれば勝ちです。Stackを使います。

  • ソース
import java.util.Scanner;
import java.util.Stack;

//Strange Mathematical Expression
public class AOJ0087 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			String[] s = sc.nextLine().split(" ");
			Stack<Double> u = new Stack<Double>();
			for(String v:s){
				if(v.equals("+")){
					double b = u.pop();
					double a = u.pop();
					u.push(a+b);
				}
				else if(v.equals("-")){
					double b = u.pop();
					double a = u.pop();
					u.push(a-b);
				}
				else if(v.equals("*")){
					double b = u.pop();
					double a = u.pop();
					u.push(a*b);
				}
				else if(v.equals("/")){
					double b = u.pop();
					double a = u.pop();
					u.push(a/b);
				}
				else u.push(Double.parseDouble(v));
			}
			System.out.println(u.pop());
		}
	}
}