表达式的值 题目描述 后缀表达式,它的定义如下: 单个数字如 6,8 等都是后缀表达式; 如果 e1,e2 都是后缀表达式,则 e1 e2 +e1 e2 +、e1 e2 −e1 e2 −、e1 e2 ∗e1 e2 ∗ 都是后缀表达式; 不满足以上两条规则的表达式都不是后缀表达式。 给定一个后缀表达式(保证合法),请计算表达式的值,并输出它模 10007 的余数。 注意,为了方便起见,我们省略了除法,同时也规定在表达式中出现的数字只能由一位数构成。 输入格式 一个字符序列:表示输入的后缀表达式。每个字符间用一个空格分开。保证输入字符只可能出现 0 到 9 及 +,-,* 三种运算符,且构成一个合法的后缀表达式。 输出格式 单个数字:表示表达式的值模 10007 的余数,注意余数必须大于或等于零。 输入样例#1 3 4 + 输出样例#1 7 输入样例#2 2 3 3 + * 输出样例#2 12 输入样例#3 1 2 * 3 + 4 * 5 - 6 + 7 * 8 - 9 + 输出样例#3 148 输入样例#4 1 5 - 输出样例#4 6 说明提示 数据范围 记输入的可见字符数量为 n, 对于 50% 的数据,1≤n≤100; 对于 100% 的数据,1≤n≤100,000。 样例2解释: 2*(3+3)=12 限制 时间限制:1000ms 内存限制:512MiB
正确答案:参考程序(Python):s=input().split();st=[];for t in s:if t in '+-*':b=st.pop();a=st.pop();st.append({'+':(a+b),'-':(a-b),'*':(a*b)}[t]%10007) else:st.append(int(t)%10007);print(st[0])。样例→7、12、148。核心:后缀表达式求值取模。
试卷来源:202506 青少年等级考试C/C++真题六级