一个老问题,超难(100分)

  • 主题发起人 songjunjie
  • 开始时间
S

songjunjie

Unregistered / Unconfirmed
GUEST, unregistred user!
1-9 9个数,使用加减乘除四则运算,使结果为100
70年代考研的一道题目,难吧?
 
(1+9)*2*5+(3-8/4)-(7-6)
编程可不会
 
(3+7)*2*5*((6-4)-(9-8))*1
(4+6)*2*5*(9/3-1-(8-7))
(4*6)*5-((3+7)*((9-8)+2-1))
可以有很多,编程我也不会
 
注意:不要括号@@只有加减乘除4则运算,运算次序是先乘除后加减,没有括号[:D]
 
1*2+8+4*6+3*7+5*9
8*9+6*7+2*3-4*5/1 这个加减剩除都有了
 
穷举法等于9的阶乘再乘以4的8次方=23781703680( 二百三十七亿...)
 
哈哈,穷举法也算一种方法啊,满分15分的话,给你5分吧....
 
总结:这题很难[:D]
 
总结:这题很难[:D]
 
如果让程序列出所有答案,那么带括号就更难了!
 
下面这个方法比穷举好很多,但也挺慢的,主要是我的那个以前计算四则混合运算的函数GetmutBaseValue太复杂,支持的东西太多.支持无穷极括号、许多函数、联接运算等。有空再写个专门的GetmutBaseValue。
type
Set9='1'..'9';
Set9s=set of Set9;
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
MutCh:array[0..3] of char=('+','-','*','/');
function GetmutStrValue(st:string):integer;
procedure mutTo100(NowST:string;leaveSet:Set9s;Var sts:Tstringlist);
var
Form1: TForm1;
implementation
{$R *.dfm}
function GetmutStrValue(st:string):integer;
begin
result:=GetmutBaseValue(st,false);
//这是我以前写好的一个计算四则混合运算的函数
end;
procedure mutTo100(NowST:string;leaveSet:Set9s;Var sts:Tstringlist) ;
var
i:integer;
numch:Set9;
ALeaveSet:Set9s;
ANowSt:string;
begin
if (GetmutStrValue(NowST)=100) and (leaveSet=[]) then
begin
//算式等于100,且正好用完9个数
sts.Add(NowST+' =100');
exit;
end;
if leaveSet<>[] then
begin

for i:=0 to 3do
for numch in leaveSetdo
begin
if NowSt='' then
ANowSt:=numch
else
ANowSt:=NowST+mutch+numch;
ALeaveSet:=leaveSet-[numch];
mutTo100(ANowst,ALeaveSet,Sts);
end;
end;
//end if leaveSet<>[]
end;
procedure TForm1.Button1Click(Sender: TObject);
var
sts:Tstringlist;
begin
sts := Tstringlist.Create;
try
mutTo100('',['1'..'9'],sts);
form1.Memo1.Lines.Text:=sts.Text;
finally
sts.Free;
end;
end;
end.
 
运算出来了,不过有部分错的,是因为我那个计算GetmutBaseValue对除法取正造成的,改天有空改写那个函数
下面是一部分结果
1+2+3+8*4+5+9*7-6 =100
1+2+3+8*4+5-6+7*9 =100
1+2+3+8*4+5-6+9*7 =100
1+2+3+8*4+7*9+5-6 =100
1+2+3+8*4+7*9-5/6 =100 //这里除法取整了
1+2+3+8*4+7*9-6+5 =100
1+2+3+8*4+7*9-6/5 =100 //这里除法取整了
1+2+3+8*4+9*7+5-6 =100
1+2+3+8*4+9*7-5/6 =100
1+2+3+8*4+9*7-6+5 =100
1+2+3+8*4+9*7-6/5 =100
1+2+3+8*4-5/6+7*9 =100
1+2+3+8*4-5/6+9*7 =100
1+2+3+8*4-6+5+7*9 =100
1+2+3+8*4-6+5+9*7 =100
1+2+3+8*4-6+7*9+5 =100
1+2+3+8*4-6+9*7+5 =100
1+2+3+8*4-6/5+7*9 =100
1+2+3+8*4-6/5+9*7 =100
1+2+3+8*5+4/7*6*9 =100
1+2+3+8*5+4/7*9*6 =100
1+2+3+8*6+4/7+5*9 =100
1+2+3+8*6+4/7+9*5 =100
1+2+3+8*6+5*9+4/7 =100
1+2+3+8*6+9*5+4/7 =100
1+2+3+8*7+4*6+5+9 =100
1+2+3+8*7+4*6+9+5 =100
1+2+3+8*7+5+4*6+9 =100
1+2+3+8*7+5+6*4+9 =100
1+2+3+8*7+5+9+4*6 =100
1+2+3+8*7+5+9+6*4 =100
1+2+3+8*7+6*4+5+9 =100
1+2+3+8*7+6*4+9+5 =100
1+2+3+8*7+9+4*6+5 =100
1+2+3+8*7+9+5+4*6 =100
1+2+3+8*7+9+5+6*4 =100
1+2+3+8*7+9+6*4+5 =100
1+2+3+8*9+4+5+6+7 =100
1+2+3+8*9+4+5+7+6 =100
1+2+3+8*9+4+6+5+7 =100
1+2+3+8*9+4+6+7+5 =100
1+2+3+8*9+4+7+5+6 =100
1+2+3+8*9+4+7+6+5 =100
1+2+3+8*9+4*6+5-7 =100
1+2+3+8*9+4*6-7+5 =100
1+2+3+8*9+5+4+6+7 =100
1+2+3+8*9+5+4+7+6 =100
1+2+3+8*9+5+4*6-7 =100
1+2+3+8*9+5+6+4+7 =100
1+2+3+8*9+5+6+7+4 =100
1+2+3+8*9+5+6*4-7 =100
1+2+3+8*9+5+7+4+6 =100
1+2+3+8*9+5+7+6+4 =100
1+2+3+8*9+5-7+4*6 =100
1+2+3+8*9+5-7+6*4 =100
1+2+3+8*9+6+4+5+7 =100
1+2+3+8*9+6+4+7+5 =100
1+2+3+8*9+6+5+4+7 =100
1+2+3+8*9+6+5+7+4 =100
1+2+3+8*9+6+7+4+5 =100
1+2+3+8*9+6+7+5+4 =100
1+2+3+8*9+6*4+5-7 =100
1+2+3+8*9+6*4-7+5 =100
1+2+3+8*9+6*7-4*5 =100
1+2+3+8*9+6*7-5*4 =100
1+2+3+8*9+7+4+5+6 =100
1+2+3+8*9+7+4+6+5 =100
1+2+3+8*9+7+5+4+6 =100
1+2+3+8*9+7+5+6+4 =100
1+2+3+8*9+7+6+4+5 =100
1+2+3+8*9+7+6+5+4 =100
1+2+3+8*9+7*6-4*5 =100
1+2+3+8*9+7*6-5*4 =100
1+2+3+8*9-4*5+6*7 =100
1+2+3+8*9-4*5+7*6 =100
1+2+3+8*9-5*4+6*7 =100
1+2+3+8*9-5*4+7*6 =100
1+2+3+8*9-7+4*6+5 =100
1+2+3+8*9-7+5+4*6 =100
1+2+3+8*9-7+5+6*4 =100
1+2+3+8*9-7+6*4+5 =100
1+2+3+9+4*6+5+7*8 =100
1+2+3+9+4*6+5+8*7 =100
1+2+3+9+4*6+7*8+5 =100
1+2+3+9+4*6+8*7+5 =100
1+2+3+9+5+4*6+7*8 =100
1+2+3+9+5+4*6+8*7 =100
1+2+3+9+5+6*4+7*8 =100
1+2+3+9+5+6*4+8*7 =100
1+2+3+9+5+6*7/4*8 =100
1+2+3+9+5+7*6/4*8 =100
1+2+3+9+5+7*8+4*6 =100
1+2+3+9+5+7*8+6*4 =100
1+2+3+9+5+8*7+4*6 =100
1+2+3+9+5+8*7+6*4 =100
1+2+3+9+6*4+5+7*8 =100
1+2+3+9+6*4+5+8*7 =100
1+2+3+9+6*4+7*8+5 =100
1+2+3+9+6*4+8*7+5 =100
1+2+3+9+6*7/4*8+5 =100
1+2+3+9+7*6/4*8+5 =100
1+2+3+9+7*8+4*6+5 =100
1+2+3+9+7*8+5+4*6 =100
1+2+3+9+7*8+5+6*4 =100
1+2+3+9+7*8+6*4+5 =100
1+2+3+9+8*7+4*6+5 =100
1+2+3+9+8*7+5+4*6 =100
1+2+3+9+8*7+5+6*4 =100
1+2+3+9+8*7+6*4+5 =100
1+2+3+9*5+4/7+6*8 =100
1+2+3+9*5+4/7+8*6 =100
1+2+3+9*5+6*8+4/7 =100
1+2+3+9*5+8*6+4/7 =100
1+2+3+9*6+4/7*5*8 =100
1+2+3+9*6+4/7*8*5 =100
1+2+3+9*7+4*8+5-6 =100
1+2+3+9*7+4*8-5/6 =100
1+2+3+9*7+4*8-6+5 =100
1+2+3+9*7+4*8-6/5 =100
1+2+3+9*7+5+4*8-6 =100
1+2+3+9*7+5+8*4-6 =100
1+2+3+9*7+5-6+4*8 =100
1+2+3+9*7+5-6+8*4 =100
1+2+3+9*7+8*4+5-6 =100
1+2+3+9*7+8*4-5/6 =100
1+2+3+9*7+8*4-6+5 =100
1+2+3+9*7+8*4-6/5 =100
1+2+3+9*7-5/6+4*8 =100
1+2+3+9*7-5/6+8*4 =100
1+2+3+9*7-6+4*8+5 =100
1+2+3+9*7-6+5+4*8 =100
1+2+3+9*7-6+5+8*4 =100
1+2+3+9*7-6+8*4+5 =100
1+2+3+9*7-6/5+4*8 =100
1+2+3+9*7-6/5+8*4 =100
1+2+3+9*7/4*5+6+8 =100
1+2+3+9*7/4*5+8+6 =100
1+2+3+9*7/4*6-8/5 =100
1+2+3+9*7/5*8-4-6 =100
1+2+3+9*7/5*8-6-4 =100
1+2+3+9*8+4+5+6+7 =100
1+2+3+9*8+4+5+7+6 =100
1+2+3+9*8+4+6+5+7 =100
1+2+3+9*8+4+6+7+5 =100
1+2+3+9*8+4+7+5+6 =100
1+2+3+9*8+4+7+6+5 =100
1+2+3+9*8+4*6+5-7 =100
1+2+3+9*8+4*6-7+5 =100
1+2+3+9*8+5+4+6+7 =100
1+2+3+9*8+5+4+7+6 =100
1+2+3+9*8+5+4*6-7 =100
1+2+3+9*8+5+6+4+7 =100
1+2+3+9*8+5+6+7+4 =100
1+2+3+9*8+5+6*4-7 =100
1+2+3+9*8+5+7+4+6 =100
1+2+3+9*8+5+7+6+4 =100
1+2+3+9*8+5-7+4*6 =100
1+2+3+9*8+5-7+6*4 =100
1+2+3+9*8+6+4+5+7 =100
1+2+3+9*8+6+4+7+5 =100
1+2+3+9*8+6+5+4+7 =100
1+2+3+9*8+6+5+7+4 =100
1+2+3+9*8+6+7+4+5 =100
1+2+3+9*8+6+7+5+4 =100
1+2+3+9*8+6*4+5-7 =100
1+2+3+9*8+6*4-7+5 =100
1+2+3+9*8+6*7-4*5 =100
1+2+3+9*8+6*7-5*4 =100
1+2+3+9*8+7+4+5+6 =100
1+2+3+9*8+7+4+6+5 =100
1+2+3+9*8+7+5+4+6 =100
1+2+3+9*8+7+5+6+4 =100
1+2+3+9*8+7+6+4+5 =100
1+2+3+9*8+7+6+5+4 =100
1+2+3+9*8+7*6-4*5 =100
1+2+3+9*8+7*6-5*4 =100
1+2+3+9*8-4*5+6*7 =100
1+2+3+9*8-4*5+7*6 =100
1+2+3+9*8-5*4+6*7 =100
1+2+3+9*8-5*4+7*6 =100
1+2+3+9*8-7+4*6+5 =100
1+2+3+9*8-7+5+4*6 =100
1+2+3+9*8-7+5+6*4 =100
1+2+3+9*8-7+6*4+5 =100
1+2+3+9/4*6*8+5-7 =100
1+2+3+9/4*6*8-7+5 =100
1+2+3+9/4*8*6+5-7 =100
1+2+3+9/4*8*6-7+5 =100
1+2+3+9/5*6*8-7/4 =100
1+2+3+9/5*8*6-7/4 =100
1+2+3-4+7*9/5*8-6 =100
1+2+3-4+9*7/5*8-6 =100
1+2+3-4-6+7*9/5*8 =100
1+2+3-4-6+9*7/5*8 =100
1+2+3-4*5+6*7+8*9 =100
1+2+3-4*5+6*7+9*8 =100
1+2+3-4*5+7*6+8*9 =100
1+2+3-4*5+7*6+9*8 =100
1+2+3-4*5+8*9+6*7 =100
1+2+3-4*5+8*9+7*6 =100
1+2+3-4*5+9*8+6*7 =100
1+2+3-4*5+9*8+7*6 =100
1+2+3-5*4+6*7+8*9 =100
1+2+3-5*4+6*7+9*8 =100
1+2+3-5*4+7*6+8*9 =100
1+2+3-5*4+7*6+9*8 =100
1+2+3-5*4+8*9+6*7 =100
1+2+3-5*4+8*9+7*6 =100
1+2+3-5*4+9*8+6*7 =100
1+2+3-5*4+9*8+7*6 =100
1+2+3-5/6+4*8+7*9 =100
1+2+3-5/6+4*8+9*7 =100
1+2+3-5/6+7*9+4*8 =100
1+2+3-5/6+7*9+8*4 =100
1+2+3-5/6+8*4+7*9 =100
1+2+3-5/6+8*4+9*7 =100
1+2+3-5/6+9*7+4*8 =100
1+2+3-5/6+9*7+8*4 =100
1+2+3-6+4*8+5+7*9 =100
1+2+3-6+4*8+5+9*7 =100
1+2+3-6+4*8+7*9+5 =100
1+2+3-6+4*8+9*7+5 =100
1+2+3-6+5+4*8+7*9 =100
1+2+3-6+5+4*8+9*7 =100
1+2+3-6+5+7*9+4*8 =100
1+2+3-6+5+7*9+8*4 =100
1+2+3-6+5+8*4+7*9 =100
1+2+3-6+5+8*4+9*7 =100
1+2+3-6+5+9*7+4*8 =100
1+2+3-6+5+9*7+8*4 =100
1+2+3-6+7*9+4*8+5 =100
1+2+3-6+7*9+5+4*8 =100
1+2+3-6+7*9+5+8*4 =100
1+2+3-6+7*9+8*4+5 =100
1+2+3-6+7*9/5*8-4 =100
1+2+3-6+8*4+5+7*9 =100
1+2+3-6+8*4+5+9*7 =100
1+2+3-6+8*4+7*9+5 =100
1+2+3-6+8*4+9*7+5 =100
1+2+3-6+9*7+4*8+5 =100
1+2+3-6+9*7+5+4*8 =100
1+2+3-6+9*7+5+8*4 =100
1+2+3-6+9*7+8*4+5 =100
1+2+3-6+9*7/5*8-4 =100
1+2+3-6-4+7*9/5*8 =100
1+2+3-6-4+9*7/5*8 =100
1+2+3-6*9+4*5*7+8 =100
1+2+3-6*9+4*7*5+8 =100
1+2+3-6*9+5*4*7+8 =100
1+2+3-6*9+5*7*4+8 =100
1+2+3-6*9+7*4*5+8 =100
1+2+3-6*9+7*5*4+8 =100
1+2+3-6*9+8+4*5*7 =100
1+2+3-6*9+8+4*7*5 =100
1+2+3-6*9+8+5*4*7 =100
1+2+3-6*9+8+5*7*4 =100
1+2+3-6*9+8+7*4*5 =100
1+2+3-6*9+8+7*5*4 =100
1+2+3-6/5+4*8+7*9 =100
1+2+3-6/5+4*8+9*7 =100
1+2+3-6/5+7*9+4*8 =100
1+2+3-6/5+7*9+8*4 =100
1+2+3-6/5+8*4+7*9 =100
1+2+3-6/5+8*4+9*7 =100
1+2+3-6/5+9*7+4*8 =100
1+2+3-6/5+9*7+8*4 =100
1+2+3-7+4*6+5+8*9 =100
1+2+3-7+4*6+5+9*8 =100
1+2+3-7+4*6+8*9+5 =100
1+2+3-7+4*6+9*8+5 =100
1+2+3-7+5+4*6+8*9 =100
1+2+3-7+5+4*6+9*8 =100
1+2+3-7+5+6*4+8*9 =100
1+2+3-7+5+6*4+9*8 =100
1+2+3-7+5+8*9+4*6 =100
1+2+3-7+5+8*9+6*4 =100
1+2+3-7+5+9*8+4*6 =100
1+2+3-7+5+9*8+6*4 =100
1+2+3-7+5+9/4*6*8 =100 //这里 9/4取整了
1+2+3-7+5+9/4*8*6 =100 //这里 9/4取整了
1+2+3-7+6*4+5+8*9 =100
1+2+3-7+6*4+5+9*8 =100
1+2+3-7+6*4+8*9+5 =100
1+2+3-7+6*4+9*8+5 =100
1+2+3-7+8*9+4*6+5 =100
1+2+3-7+8*9+5+4*6 =100
1+2+3-7+8*9+5+6*4 =100
1+2+3-7+8*9+6*4+5 =100
1+2+3-7+9*8+4*6+5 =100
1+2+3-7+9*8+5+4*6 =100
1+2+3-7+9*8+5+6*4 =100
1+2+3-7+9*8+6*4+5 =100
1+2+3-7+9/4*6*8+5 =100
1+2+3-7+9/4*8*6+5 =100
1+2+3-7/4+9/5*6*8 =100
1+2+3-7/4+9/5*8*6 =100
 
bmsr确实厉害
还是穷觉法,但是使用集合,简化了很多用不到的循环
基本接受答案了,就是想看下各位有没有更好的办法,继续
让我们继续挖掘智力能量吧~
 
1-9按顺序排列的方案,供参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2302140
 
多人接受答案了。
 
顶部