题目名称 1425. [NOIP 2013PJ]表达式求值
输入输出 expr2013.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatar铁策 于2013-11-17加入
开放分组 全部用户
提交状态
分类标签
模拟 字符串
分享题解
通过:200, 提交:728, 通过率:27.47%
Gravatarムラサメ 100 0.003 s 1.18 MiB C++
GravatarTARDIS 100 0.009 s 1.78 MiB C++
Gravatarno 100 0.010 s 1.15 MiB C++
Gravatarpj330 100 0.010 s 1.84 MiB C++
Gravatartogether 100 0.010 s 1.84 MiB C++
Gravatar系统消息 100 0.010 s 1.84 MiB C++
Gravatar紫滢梦洁 100 0.010 s 5.18 MiB C++
Gravatarムラサメ 100 0.011 s 1.18 MiB C++
Gravatarsiri 100 0.011 s 1.84 MiB C++
Gravatarasdddf 100 0.011 s 1.84 MiB C++
本题关联比赛
防止浮躁的小练习v0.8
test2
关于 表达式求值 的近10条评论(全部评论)
数据太水,虽然我用的long long但实际用int也能过
Gravatarムラサメ
2022-11-10 20:00 9楼
错了好久。。。
GravatarkZime
2017-09-30 11:24 8楼
Gravatarjoel
2017-07-08 19:29 7楼
字符串长不止1e6
GravatarRapiz
2016-10-19 11:22 6楼
被标题吸引进来本来想写个递归下降分析然后.....看见只有+ *运算就直接暴力了...(stl大法好
Gravatarsxysxy
2016-08-30 21:33 5楼
有问题啊
各路神犇祝我一臂之力
var
s:char;
lc:boolean;
temp,i,cj,ja,he:integer;
begin
assign(input,'expr.in');
reset(input);
{assign(output,'expr.out');
rewrite(output); }
cj:=1;
while not eof do
begin
read(s);
if (s>='0') and (s<='9') then
temp:=(temp*10+(ord(s)-ord('0')))mod 10000
else
begin
if s='*' then
begin
cj:=cj*temp;
lc:=false;
end
else
begin
if lc=true then begin
ja:=ja+cj*temp;
lc:=false;
cj:=1;
end
else
ja:=ja+temp;
end;
temp:=0;
end;
end;
if lc=true then begin
ja:=ja+cj*temp;
lc:=false;
cj:=1;
end
else
ja:=ja+temp;
writeln(50);
close(input);
close(output);
end.
Gravatar菜徐坤
2016-05-03 19:28 4楼
=
Gravatar孤独的根号5
2016-04-28 18:25 3楼
传说中的龅牙,啊呀呀。
Gravatar乙阙溟河
2016-04-28 18:05 2楼
从这个角度,刚好可以扒下来楼上的龅牙。{我是那么的英明神武}
Gravatar喵了个咪的
2016-04-28 18:02 1楼

1425. [NOIP 2013PJ]表达式求值

★   输入文件:expr2013.in   输出文件:expr2013.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。

【输入格式】

输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“$+$”和乘法运算符“$*$”,且没有括号,所有参与运算的数字均为 $0 \sim 2^{31}-1$ 之间的整数。输入数据保证这一行只有 $0 \sim 9、+、*$ 这 $12$ 种字符。

【输出格式】

输出只有一行,包含一个整数,表示这个表达式的值。注意:当答案长度多于 $4$ 位时,请只输出最后 $4$ 位,前导 $0$ 不输出。

【样例输入1】

1+1*3+4

【样例输出1】

8

【样例输入2】

1+1234567890*1

【样例输出2】

7891

【样例输入3】

1+1000000003*1

【样例输出3】

4

【样例解释】

样例 $1$ 计算的结果为 $8$,直接输出 $8$。

样例 $2$ 计算的结果为 $1234567891$,输出后 $4$ 位,即 $7891$。

样例 $3$ 计算的结果为 $1000000004$,输出后 $4$ 位,即 $4$。

【数据规模】

对于 $30\%$ 的数据,$0$≤表达式中加法运算符和乘法运算符的总数≤$100$;

对于 $80\%$ 的数据,$0$≤表达式中加法运算符和乘法运算符的总数≤$1000$;

对于 $100\%$ 的数据,$0$≤表达式中加法运算符和乘法运算符的总数≤$100000$。

【来源】

NOIP2013普及组第二题