讨论 / 一个很短很易读的错程序……24点 Need back up
fascal 2012-08-21 21:45:00
点我顶贴 收藏 删除
program OvO;

var

i,j,k:integer;

s:string;

a:array[1..4]of longint;

va:longint;

function f(i,a,b:longint):longint;

begin

case i of

1:exit(a+b);

2:exit(a-b);

3:exit(a*b);

4:exit(a div b);

end;

end;

begin

readln(s);

for i:=1 to 4 do

if s[2*i-1]='A' then a[i]:=1 else

if s[i*2-1]='J' then a[i]:=11 else

if s[i*2-1]='Q' then a[i]:=12 else

if s[i*2-1]='K' then a[i]:=13 else

a[i]:=ord(s[2*i-1])-48;

for i:=1 to 4 do

for j:=1 to 4 do

for k:=1 to 4 do

begin

va:=f(i,f(i,f(i,a[1],a[2]),a[3]),a[4]);

if va=24 then begin writeln('yes');halt;end;

end;

writeln('no');

end.

#1 fascal@2010-10-14 07:27:00
回复 删除
题目上貌似没说关于括号的事情……
#2 wyftwx@2010-10-15 03:09:00
回复 删除
我是新手,我看不懂……
#3 58长的像SB@2010-10-31 05:16:00
回复 删除
1.没算10的情况

2。最后输出用write,不能用writeln

#4 Xfcmy@2010-10-31 05:44:00
回复 删除
用DIV不行。

用除把。

#5 407137009@2010-10-31 05:51:00
回复 删除
不能被零除,考虑到了吗?
#6 烨毅@2011-06-27 23:01:00
回复 删除
这个程序还是不完善,这个数据过不了

1 1 1 K

yes

#7 hzypp@2012-07-07 19:16:00
回复 删除
回复 地基烨毅 的帖子

解释为何是yes??????

#8 刘载清@2012-08-21 21:45:00
回复 删除
回复 地壳hzypp 的帖子

(13-1)*(1+1)

查看更多回复
提交回复