import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileReader;
import java.util.Scanner;
class Main
{
public static final boolean DEBUG = false;
public static void main(String[] args) throws IOException
{
Scanner cin;
String s;
int[] num;
char[] chOp;
if (DEBUG) {
cin = new Scanner(new FileReader("d:\\OJ\\uva_in.txt"));
} else {
cin = new Scanner(System.in);
}
num = new int[100];
chOp = new char[100];
while (cin.hasNext()) {
s = cin.next();
int c1 = 0;
int c2 = 0;
char prev = 0;
int sum = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {
sum = sum * 10 + s.charAt(i) - '0';
} else {
num[c1++] = sum;
if (prev == '*' || prev == '/') {
int a = num[c1 - 2];
int b = num[c1 - 1];
int c;
if (prev == '*') {
c = a * b;
} else c = a / b;
num[c1 - 2] = c;
c1--;
}
if (s.charAt(i) == '+' || s.charAt(i) == '-') {
chOp[c2++] = s.charAt(i);
}
prev = s.charAt(i);
sum = 0;
}
}
num[c1++] = sum;
//System.out.println(sum);
if (prev == '*' || prev == '/') {
int a = num[c1 - 2];
int b = num[c1 - 1];
int c;
if (prev == '*') {
c = a * b;
} else c = a / b;
num[c1 - 2] = c;
c1--;
}
for (int i = 0; i < c2; i++) {
if (chOp[i] == '+') {
num[i + 1] = num[i] + num[i + 1];
} else {
num[i + 1] = num[i] - num[i + 1];
}
}
System.out.println(num[c2]);
}
}
}
题目1101:计算表达式
最新推荐文章于 2022-08-14 13:37:20 发布