比赛 |
20100914 |
评测结果 |
AAAWAWAAAA |
题目名称 |
算24点 |
最终得分 |
80 |
用户昵称 |
donny |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2010-09-14 20:12:05 |
显示代码纯文本
- program point24(input,output);
- var
- a:array[1..4]of integer;
- b:array[1..4]of boolean;
- c:array[0..4]of integer;
- d:array[1..4]of char;
- i,j,k,l:integer;
- procedure search(x,y:integer);
- var
- i,j,k:integer;
- begin
- if x=4 then
- begin
- if y=24 then
- begin
- k:=c[1];
- for i:=1 to 3 do
- begin
- case d[i] of
- '+': j:=k+c[i+1];
- '-': j:=k-c[i+1];
- '*': j:=k*c[i+1];
- '/': j:=k div c[i+1];
- end;
- if k>c[i+1] then
- writeln(k,d[i],c[i+1],'=',j)
- else
- writeln(c[i+1],d[i],k,'=',j);
- k:=j;
- end;
- close(input);
- close(output);
- halt;
- end;
- end
- else
- begin
- for i:=1 to 4 do
- if b[i] then
- begin
- b[i]:=false;
- inc(c[0]);
- c[c[0]]:=a[i];
- if x=0 then search(x+1,a[i])
- else
- begin
- d[x]:='+';
- search(x+1,y+a[i]);
- if y-a[i]>0 then
- begin
- d[x]:='-';
- search(x+1,y-a[i]);
- end;
- d[x]:='*';
- search(x+1,y*a[i]);
- if y mod a[i]=0 then
- begin
- d[x]:='/';
- search(x+1,y div a[i]);
- end;
- end;
- b[i]:=true;
- dec(c[0]);
- end;
- end;
- end;
- begin
- assign(input,'point24.in');
- reset(input);
- assign(output,'point24.out');
- rewrite(output);
-
- for i:=1 to 4 do
- read(a[i]);
- for i:=1 to 4 do
- b[i]:=true;
- search(0,0);
- writeln('No answer!');
- close(input);
- close(output);
- end.