#7 NEW WORLD@2013-11-24 04:45:30
32397
回复
删除
这是第二题的程序:
program expr;
var
sss:ansistring;
y,z,i,ss:longint;
s:array[1..100001]of string;
a:array[1..100001]of longint;
f:array[1..100000]of char;
begin
readln(sss);
y:=1;
z:=1;
for i:=1 to length(sss) do
if sss[i] in ['0'..'9'] then s[y]:=s[y]+sss[i]
else
begin
inc(y);
f[z]:=sss[i];
inc(z);
end;
for i:=1 to y do
begin
delete(s[i],1,length(s[i])-4);
val(s[i],a[i]);
end;
for i:=1 to y-1 do
if f[i]='*' then
begin
a[i]:=a[i]*a[i+1];
a[i+1]:=0;
end;
for i:=1 to y do
ss:=ss+a[i];
write(ss);
readln;
readln;
end.
算的时候也不要用高精度,直接取数的后四位算就ok了,其实挺容易的。