讨论 / 无效浮点操作是什么意思
yiyu9261wsx 2011-01-07 19:22:00
点我顶贴 收藏 删除
状态: Unaccepted

测评机: Xeond[6]

得分: 90分

提交日期: 2010-6-17 20:24:00

有效耗时: 563毫秒

测试结果1: 通过本测试点|有效耗时188ms

测试结果2: 通过本测试点|有效耗时47ms

测试结果3: 通过本测试点|有效耗时47ms

测试结果4: 通过本测试点|有效耗时46ms

测试结果5: 通过本测试点|有效耗时47ms

测试结果6: 通过本测试点|有效耗时47ms

测试结果7: 运行错误|无效浮点操作

测试结果8: 通过本测试点|有效耗时47ms

测试结果9: 通过本测试点|有效耗时47ms

测试结果10: 通过本测试点|有效耗时47ms

#1 idota@2010-06-23 22:35:00
回复 删除
可否把程序发上来看看
#2 李军伟@2011-01-07 19:22:00
回复 删除
我也是“无效浮点数”

::

状态: Unaccepted

测评机: Xeond[6]

得分: 90分

提交日期: 2011-1-8 11:12:00

有效耗时: 610毫秒

测试结果1: 通过本测试点|有效耗时172ms

测试结果2: 通过本测试点|有效耗时46ms

测试结果3: 通过本测试点|有效耗时47ms

测试结果4: 通过本测试点|有效耗时47ms

测试结果5: 通过本测试点|有效耗时47ms

测试结果6: 通过本测试点|有效耗时63ms

测试结果7: 运行错误|无效浮点操作

测试结果8: 通过本测试点|有效耗时63ms

测试结果9: 通过本测试点|有效耗时62ms

测试结果10: 通过本测试点|有效耗时63ms

var n:string;

i,t:integer;

sum:real;

a:array [0..7] of integer;

f:array [0..7] of boolean;

d:array [1..4] of record

x,y:integer;

end;

procedure init;

begin

readln(n);

t:=-1;

i:=1;

while i<=length(n) do

begin

if n[i]=' ' then begin i:=i+1;continue; end;

t:=t+1;

case n[i] of

'1':begin

if n[i+1]='0' then begin a[t]:=10;i:=i+1; end

else a[t]:=1;

end;

'2'..'9':val(n[i],a[t]);

'A':a[t]:=1;

'J':a[t]:=11;

'Q':a[t]:=12;

'K':a[t]:=13;

end;

i:=i+1;

end;

for i:=0 to 3 do

a[i+4]:=0-a[i];

end;

procedure search(t:integer);

var i:integer;

begin

if t=5 then

begin

if (abs(sum-24)<=1E-6) or (abs(sum-1/24)<=1E-6) then begin writeln('yes');halt; end;

exit;

end;

for i:=0 to 31 do

if f[i div 4] then

if t=1 then

begin

f[i div 4 mod 4]:=false;

f[i div 4 mod 4+4]:=false;

d[t].x:=a[i div 4];

d[t].y:=-1;

sum:=a[i div 4];

search(t+1);

f[i div 4 mod 4]:=true;

f[i div 4 mod 4+4]:=true;

d[t].x:=0;

d[t].y:=0;

end

else

begin

f[i div 4 mod 4]:=false;

f[i div 4 mod 4+4]:=false;

d[t].x:=a[i div 4];

d[t].y:=i;

case i mod 4 of

0:sum:=sum+a[i div 4];

1:sum:=sum-a[i div 4];

2:sum:=sum*a[i div 4];

3:sum:=sum/a[i div 4];

end;

search(t+1);

f[i div 4 mod 4]:=true;

f[i div 4 mod 4+4]:=true;

case i mod 4 of

0:sum:=sum-a[i div 4];

1:sum:=sum+a[i div 4];

2:sum:=sum/a[i div 4];

3:sum:=sum*a[i div 4];

end;

d[t].x:=0;

d[t].y:=0;

end;

end;

begin

init;

fillchar(f,sizeof(f),true);

sum:=0;

search(1);

writeln('no');

end.

查看更多回复
提交回复