Pascal 2013年普及组试题
答案:1 悬赏:60 手机版
解决时间 2021-01-27 17:19
- 提问者网友:泪痣哥哥
- 2021-01-26 23:42
Pascal 2013年普及组试题
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-01-27 00:46
var s,s1,s2,ss:string;
i,x1,x2,j,x3,xx:longint;
begin
readln(s);
s:=s+'='; //最后加上=,方便下面计算
i:=1;
while i<=length(s) do //先解决乘法
begin
if s[i]='*' then
begin
s1:='';s2:='';
for j:=i-1 downto 1 do
if s[j]in['0'..'9'] then s1:=s[j]+s1 //取出第一个因数
else break;
xx:=j+1; //为了不让第二个因数出错,先用xx寄存开头位置
for j:=i+1 to length(s) do
if s[j]in['0'..'9'] then s2:=s2+s[j] //取出第二个因数
else break;
i:=xx; //求出一个乘法算式的答案
if length(s1)>4 then s1:=copy(s1,length(s1)-4+1,4);
//如果超过四位那么只取四位
if length(s2)>4 then s2:=copy(s2,length(s2)-4+1,4);
val(s1,x1);val(s2,x2);
x3:=x1*x2;
str(x3,ss);
if length(ss)>4 then ss:=copy(ss,length(ss)-4+1,4);
delete(s,i,j-i);
insert(ss,s,i); //插入得数
end
else inc(i); //如果不是乘号就进行下一位
end;
s1:='';
for i:=1 to length(s) do //取出第一个加数
if s[i]in['0'..'9'] then s1:=s1+s[i] else break;
val(s1,x1);s1:='';
for i:=i+1 to length(s) do //算加法
if s[i]in['0'..'9'] then s1:=s1+s[i]
else
begin
if length(s1)>4 then s1:=copy(s1,length(s1)-4+1,4);
//同上,只去最后四位
val(s1,x2);
x1:=x1+x2;
str(x1,s1);
if length(s1)>4 then val(copy(s1,length(s1)-4+1,4),x1);
s1:='';
end;
str(x1,s1);
if length(s1)<=4 then writeln(s1) //输出,如果超过四位就输出最后四位
else writeln(copy(s1,length(s1)-4+1,4));
end.
i,x1,x2,j,x3,xx:longint;
begin
readln(s);
s:=s+'='; //最后加上=,方便下面计算
i:=1;
while i<=length(s) do //先解决乘法
begin
if s[i]='*' then
begin
s1:='';s2:='';
for j:=i-1 downto 1 do
if s[j]in['0'..'9'] then s1:=s[j]+s1 //取出第一个因数
else break;
xx:=j+1; //为了不让第二个因数出错,先用xx寄存开头位置
for j:=i+1 to length(s) do
if s[j]in['0'..'9'] then s2:=s2+s[j] //取出第二个因数
else break;
i:=xx; //求出一个乘法算式的答案
if length(s1)>4 then s1:=copy(s1,length(s1)-4+1,4);
//如果超过四位那么只取四位
if length(s2)>4 then s2:=copy(s2,length(s2)-4+1,4);
val(s1,x1);val(s2,x2);
x3:=x1*x2;
str(x3,ss);
if length(ss)>4 then ss:=copy(ss,length(ss)-4+1,4);
delete(s,i,j-i);
insert(ss,s,i); //插入得数
end
else inc(i); //如果不是乘号就进行下一位
end;
s1:='';
for i:=1 to length(s) do //取出第一个加数
if s[i]in['0'..'9'] then s1:=s1+s[i] else break;
val(s1,x1);s1:='';
for i:=i+1 to length(s) do //算加法
if s[i]in['0'..'9'] then s1:=s1+s[i]
else
begin
if length(s1)>4 then s1:=copy(s1,length(s1)-4+1,4);
//同上,只去最后四位
val(s1,x2);
x1:=x1+x2;
str(x1,s1);
if length(s1)>4 then val(copy(s1,length(s1)-4+1,4),x1);
s1:='';
end;
str(x1,s1);
if length(s1)<=4 then writeln(s1) //输出,如果超过四位就输出最后四位
else writeln(copy(s1,length(s1)-4+1,4));
end.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯