<INPUT id=a type="text"><br>
<INPUT id=b type="text"><br>
<INPUT id=c type="text" ><br>
<INPUT id=d type="text"><br>
<span id="ppp" name="ppp">24点牌算法:</span><br>
<br><span id="ppps" name="ppps"></span><br>
<input type="button" οnclick="dosumstr()" id=button1 name=button1 value="24点牌算法">
<script>
var strings=""
var string2=""
var resultary=new Array
var jk=0
function dosumstr()
{
resultary.splice(0,resultary.length)
var A,B,C,D
var g=new Array
g[0]=document.all.a.value
g[1]=document.all.b.value
g[2]=document.all.c.value
g[3]=document.all.d.value
//for loop the sequence of the 4 numbers
for (var i=0;i<4;i++)
{
A = g[i];
inner:
for (var j=0;j<4;j++)
{
if(i==j)
{
continue inner;//从未选的三个数字中选择一个数字
}
else
{
B = g[j];
}
inner2:
for (var x=0;x<4;x++)
{
if (j == x||i==x)
{
continue inner2;//从未选的两个数字中选择一个数字
}
else
{
C = g[x];
}
inner3:
for (var y=0;y<4;y++)
{
if (x==y||i==y||j==y)
{
continue inner3;//从未选的一个数字中选择一个数字
}
else
{
D = g[y];
}
if(i!=j&&i!=x&&i!=y&&j!=x&&j!=y&&x!=y)
{
sum24(A,B,C,D)
}
}
}
}
}
var bbstr=resultary.join("<br>")
for(var ii=0;ii<resultary.length;ii++)
{
filter:
for(var jj=ii+1;jj<resultary.length;jj++)
{
if(String(resultary[ii])==String(resultary[jj]))
{
resultary.splice(jj,1);
}
else
{
continue filter;
}
}
}
var results=resultary.join("<br>")
document.all.ppp.innerHTML=results
}
function sum24(A,B,C,D)
{
var a=new Array
var X,Y,Z
a[0]="parseFloat(A)XparseFloat(B)YparseFloat(C)ZparseFloat(D)"
a[1]="(parseFloat(A)XparseFloat(B))YparseFloat(C)ZparseFloat(D)"
a[2]="(parseFloat(A)XparseFloat(B)YparseFloat(C))ZparseFloat(D)"
a[3]="(parseFloat(A)XparseFloat(B))Y(parseFloat(C)ZparseFloat(D))"
a[4]="parseFloat(A)XparseFloat(B)Y(parseFloat(C)ZparseFloat(D))"
a[5]="parseFloat(A)X(parseFloat(B)YparseFloat(C)ZparseFloat(D))"
a[6]="parseFloat(A)X(parseFloat(B)YparseFloat(C))ZparseFloat(D)"
a[7]="parseFloat((parseFloat(A)XparseFloat(B))YparseFloat(C))ZparseFloat(D)"
a[8]="parseFloat(A)XparseFloat(((parseFloat(B)YparseFloat(C))ZparseFloat(D)))"
a[9]="parseFloat((parseFloat(A)X(parseFloat(B)YparseFloat(C))))ZparseFloat(D)"
a[10]="parseFloat(A)XparseFloat((parseFloat(B)Y(parseFloat(C)ZparseFloat(D))))"
/*a[0]="AXBYCD"
a[1]="(AXB)YCZD"
a[2]="(AXBYC)ZD"
a[3]="(AXB)Y(CZD)"
a[4]="AXBY(CZD)"
a[5]="AX(BYCZD)"
a[6]="AX(BYC)ZD"
a[7]="((AXB)YC)ZD"
a[8]="AX((BYC)ZD)"
a[9]="(AX(BYC))ZD"
a[10]="AX(BY(CZD))"*/
var b=new Array
b[0]="*"
b[1]="+"
b[2]="-"
b[3]="/"
var sumall=new Array
var ints=0
for(var i=0;i<a.length;i++)
{
for(var j=0;j<4;j++)
{
for(var k=0;k<4;k++)
{
for(var l=0;l<4;l++)
{
var re =/X/g; // 创建正则表达式模式。
var re2 =/Y/g;
var re3 =/Z/g;
var r = a[i].replace(re, String(b[j]));
r=r.replace(re2, String(b[k]));
r=r.replace(re3, String(b[l]));
sumall[ints]=String(r)
ints++
}
}
}
}
for(var il=0;il<sumall.length;il++)
{
eval("var tempstr="+sumall[il])
if(tempstr==24)
{
var reps=/parseFloat/g;
var re1 =/parseFloat/(A/)/g; // 创建正则表达式模式。
var re12 =/parseFloat/(B/)/g;
var re13 =/parseFloat/(C/)/g;
var re14 =/parseFloat/(D/)/g;
var rs = sumall[il].replace(re1, String(A));
rs=rs.replace(re12,String(B));
rs=rs.replace(re13,String(C));
rs=rs.replace(re14,String(D));
rs=rs.replace(reps,"")
resultary[jk]=String(rs)
jk++
}
}
}
</script>