- 表达式求值
- 2014-08-21 15:44:02 @
var st:string;
sz:array[1..128] of real;
zf:boolean;
i,j,k,x:integer;
y:real;
begin
j:=0;
k:=1;
zf:=false;
read(st);
for i:=1 to length(st) do
begin
if st[i] in ['*','+'] then
begin
if zf then
begin
val(copy(st,k,i-k),y,x);
sz[j]:=sz[j] * y;
end
else
begin
inc(j);
val(copy(st,k,i-k),y,x);
sz[j]:=y;
end;
k:=i+1;
if st[i]='*' then zf:=true
else zf:=false;
end;
if i=length(st) then if zf then
begin
val(copy(st,k,i-k+1),y,x);
sz[j]:=sz[j] * y;
end
else
begin
inc(j);
val(copy(st,k,i-k+1),y,x);
sz[j]:=y;
end;
end;
y:=0;
for i:=1 to j do
y:=y + sz[i];
str(y:0:0,st);
if length(st)<=4 then write(st)
else
begin
val(copy(st,length(st)-3,4),y,x);
write(y:0:0);
end;
end.
样例都对啊!!!
什么情况?而且还是全部WA
2 条评论
-
308454 LV 10 @ 2014-08-21 20:14:15
另外不需要用实数吧,直接取模就可以啦
-
2014-08-21 20:13:38@
亲,这题用string读会爆的。要用ansistring或while not(eoln(input)) do
- 1
信息
- ID
- 1849
- 难度
- 7
- 分类
- (无)
- 标签
- 递交数
- 3592
- 已通过
- 768
- 通过率
- 21%
- 被复制
- 10
- 上传者