讨论 / 求助,过了5个点
hszsfz 2015-05-07 02:47:57
点我顶贴 收藏 删除
请大神们帮忙看一下哪里错了?

var s:string;

use:array[1..10] of boolean;

i,k:integer;

a:array[1..10] of real;

function work(a,b,p:real):real;

begin

if p=1 then exit(a+b);

if p=2 then if a>b then exit(a/b) else exit(b/a);

if p=3 then exit(abs(a-b));

if p=4 then exit(a*b);

end;

procedure try(o:integer);

var i,j:integer;

begin

if a[7]=24 then begin writeln('yes');halt end;

for i:=1 to o do

for j:=1 to o do

if (i<>j) and (not use[i])and(not use[j]) then

begin

use[i]:=true;use[j]:=true;

for k:=1 to 4 do

begin

use[o+1]:=false;

a[o+1]:=work(a[i],a[j],k);

try(o+1);

end;

use[i]:=false;use[j]:=false;

end;

end;

begin

read(s);

k:=0;

for i:=1 to length(s) do

begin

if s[i] in ['2'..'9'] then begin inc(k);a[k]:=ord(s[i])-ord('0');end;

if s[i]='A' then begin inc(k);a[k]:=1;end;

if s[i]='1' then begin inc(k);a[k]:=10;end;

if s[i]='J' then begin inc(k);a[k]:=11;end;

if s[i]='Q' then begin inc(k);a[k]:=12;end;

if s[i]='K' then begin inc(k);a[k]:=13;end;

end;

try(4);

writeln('no');

end.

查看更多回复
提交回复