pascal求大神1199:最大与最小时间限制:1 Sec 内存限制:128 MB提交:179 解决:91[提交][状态][讨论版]有一个只有加法和乘法的算术式,假设你可以合法的任意加括号,请求出这个算术式能得到的最大值

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 04:26:43

pascal求大神1199:最大与最小时间限制:1 Sec 内存限制:128 MB提交:179 解决:91[提交][状态][讨论版]有一个只有加法和乘法的算术式,假设你可以合法的任意加括号,请求出这个算术式能得到的最大值
pascal求大神
1199:最大与最小
时间限制:1 Sec 内存限制:128 MB
提交:179 解决:91
[提交][状态][讨论版]
有一个只有加法和乘法的算术式,假设你可以合法的任意加括号,请求出这个算术式能得到的最大值和最小值.参与运算的数字都是正整数,数字个数不超过20.每个数字的大小不超过20.
输入
一行,一个合法的算术式,两项项之间都有一个空格.
输出
两行,第一行为能得到的最大值,第二行为能得到的最小值.
样例输入 Copy
2 + 3 * 5 + 4 =
样例输出 Copy
45
21
提示
来源
[提交][状态][讨论版]

pascal求大神1199:最大与最小时间限制:1 Sec 内存限制:128 MB提交:179 解决:91[提交][状态][讨论版]有一个只有加法和乘法的算术式,假设你可以合法的任意加括号,请求出这个算术式能得到的最大值
var
a,c:array[1..12] of longint;
b:array[1..12] of char;
i,j,n,max,min:longint;
xrx:char;
begin
while not eoln do
begin
inc(n);
read(a[n]);
read(xrx,b[n]);
if b[n]='=' then break;
end;
c:=a;
max:=1;
for i:=1 to n-1 do
if b[i]='+' then c[i+1]:=c[i]+c[i+1];
for i:=1 to n-1 do
if b[i]='*' then max:=max*c[i];
max:=max*c[n];
min:=0;
c:=a;
min:=0;
for i:=1 to n-1 do
if b[i]='*' then c[i+1]:=c[i+1]*c[i];
for i:=1 to n-1 do
if b[i]='+' then min:=min+c[i];
min:=min+c[n];
writeln(max);
writeln(min);
end.