pascal,求24点计算程序

一定要用pascal例如33888/3=8/33-8/3=1/38/(1/3)=24{"()"不能省去}1244(1+2)*(4+4)=24搜索时把所有可能都要输出... 一定要用pascal
例如
3 3 8 8
8/3=8/3
3-8/3=1/3
8/(1/3)=24{"()"不能省去}
1 2 4 4
(1+2)*(4+4)=24
搜索时把所有可能都要输出
展开
 我来答
zhujunhao1998
2012-08-20 · TA获得超过219个赞
知道答主
回答量:115
采纳率:0%
帮助的人:115万
展开全部
Type nt=record val:real; c:integer; s:string[100]; end;
an=array[1..4] of nt;
Var b:an;
a:array[1..4] of real;
i:integer;
found,error:boolean;
Function ist(n:integer):string;
var s:string;
begin
s:='';
repeat
s:=chr(ord('0')+n mod 10)+s;
n:=n div 10;
until n=0;
ist:=s;
end;
Procedure ci(a0,b0:nt;i:integer);
var j:integer;
s1,s2:string;
begin
if a0.s='' then s1:='('+ist(trunc(a0.val))
else s1:='('+a0.s;
if b0.s='' then s2:=ist(trunc(b0.val))+')'
else s2:=b0.s+')';
case b0.c of
1:begin
a0.s:=s1+'+'+s2;
a0.val:=a0.val+b0.val;
end;
2:begin
a0.s:=s1+'-'+s2;
a0.val:=a0.val-b0.val;
end;
3:begin
a0.s:=s1+'*'+s2;
a0.val:=a0.val*b0.val;
end;
4:begin
if b0.val=0 then
begin
error:=true;
exit;
end;
a0.s:=s1+'/'+s2;
a0.val:=a0.val/b0.val;
end;
end;
b[i]:=a0;
for j:=i+2 to 4 do b[j-1]:=b[j];
end;
Procedure Cal(n:integer);
var i:integer;
temp:an;
begin
if (n=1) then
begin
if not error and (abs(b[1].val-24)<0.000001) then
begin
found:=true;
writeln(b[1].s,' = ', 24);
end;
exit;
end;
for i:=1 to n-1 do
begin
error:=false;
temp:=b;
ci(b[i],b[i+1],i);
if not error then Cal(n-1);
if found then exit;
b:=temp;
end;
end;
Procedure sc(n:integer);
var i:integer;
begin
if n=5 then
begin
found:=false;
Cal(4);
exit;
end;
for i:=1 to 4 do
begin
b[n].c:=i;
sc(n+1);
if found then exit;
end;
end;
Procedure sn(n:integer);
var i,j,k,L:integer;
begin
if n=5 then
begin
b[1].c:=1;
sc(2);
exit;
end;
for i:=1 to 4 do
if a[i]<>-1 then
begin
b[n].val:=a[i];
a[i]:=-1;
sn(n+1);
if found then exit;
a[i]:=b[n].val;
end;
end;
Begin
write('Enter 4 integers: ');
for i:=1 to 4 do
begin
read(a[i]);
b[i].c:=0;
b[i].s:='';
end;
found:=false;
sn(1);
if not found then writeln('Not found.');
End.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式