一道数学题...纠结ing不知道有没有强人会做.( ) - ( ) / ( ) - ( ) x ( )= -142x + - x +( ) x ( ) + ( ) - ( ) + ( )= 28- x + - x ( ) + ( ) + ( ) + ( ) x ( )= 148- - - + -( )
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/29 10:33:30
一道数学题...纠结ing不知道有没有强人会做.( ) - ( ) / ( ) - ( ) x ( )= -142x + - x +( ) x ( ) + ( ) - ( ) + ( )= 28- x + - x ( ) + ( ) + ( ) + ( ) x ( )= 148- - - + -( )
一道数学题...纠结ing
不知道有没有强人会做.
( ) - ( ) / ( ) - ( ) x ( )= -142
x + - x +
( ) x ( ) + ( ) - ( ) + ( )= 28
- x + - x
( ) + ( ) + ( ) + ( ) x ( )= 148
- - - + -
( ) / ( ) - ( ) + ( ) - ( )= -25
+ - + + +
( ) x ( ) + ( ) - ( ) + ( )= 102
等 等 等 等 等
于 于 于 于 于
112 9 2 175 556
用1~25这些数字来填 不能重复
一道数学题...纠结ing不知道有没有强人会做.( ) - ( ) / ( ) - ( ) x ( )= -142x + - x +( ) x ( ) + ( ) - ( ) + ( )= 28- x + - x ( ) + ( ) + ( ) + ( ) x ( )= 148- - - + -( )
加一点剪枝可以用程序跑出来
从上到下依次是:
8 12 2 9 16
19 1 5 18 22
25 17 10 4 24
21 7 20 3 11
6 13 15 14 23
8-12/2-9*16=-142
19x1+5-18+22=28
25+17+10+4x24=148
21/7-20+3-11=-25
6x13+15-14+23=102
8x19-25-21+6=112
12+1x17-7-13=9
2-5+10-20+15=2
9x18-4+3+14=175
16+22x24-11+23=556
呃,对于这题我写出了条程序
var a:array[0..5,0..5] of longint;
i,j,k,b:longint;
s:set of 0..25;
function cross(s,t:longint):boolean;
begin
cross:=true;
if (a[1,1]-a[1,2]/a[...
全部展开
呃,对于这题我写出了条程序
var a:array[0..5,0..5] of longint;
i,j,k,b:longint;
s:set of 0..25;
function cross(s,t:longint):boolean;
begin
cross:=true;
if (a[1,1]-a[1,2]/a[1,3]-a[1,4]*a[1,5]=-142)
and(a[2,1]*a[2,2]+a[2,3]-a[2,4]+a[2,5]=28)
and(a[3,1]+a[3,2]+a[3,3]+a[3,4]*a[3,5]=148)
and(a[4,1]/a[4,2]-a[4,3]+a[4,4]-a[4,5]=-25)
and(a[5,1]*a[5,2]+a[5,3]-a[5,4]+a[5,5]=102) then cross:=false;
end;
function down(s,t:longint):boolean;
begin
down:=true;
if (a[1,1]*a[2,1]-a[3,1]-a[4,1]+a[5,1]=112)
and(a[1,2]+a[2,2]*a[3,2]-a[4,2]-a[5,2]=9)
and(a[1,3]-a[2,3]+a[3,3]-a[4,3]+a[5,3]=2)
and(a[1,4]*a[2,4]-a[3,4]+a[4,4]+a[5,4]=175)
and(a[1,5]+a[2,5]*a[3,5]-a[4,5]+a[5,5]=556) then down:=false;
end;
begin
b:=1;
while b=1 do
begin
b:=1;
s:=[1..25];
for i:=1 to 5 do
for j:=1 to 5 do
begin
for k:=1 to 25 do
if (k in s) then
begin
a[i,j]:=k;
s:=s-[k];
break;
end;
end;
if cross(1,1)=false then
if down(1,1)=false then b:=0;
s:=[1..25];
end;
for i:=1 to 5 do
begin
for j:=1 to 5 do write(a[i,j]:5);
writeln;
end;
end.
运行出结果可能要几个小时
收起