<html>
<head>
</head>
<script language='javascript'>
var debug = false;
var steps = new Array();
var ResultSet = new Array();
ResultSet.Add = function(newResult)
{
for (var i = 0; i < ResultSet.length; i++)
{
if (ResultSet[i] == newResult)
{
return;
}
}
ResultSet.push(newResult);
}
ResultSet.toString = function()
{
var msg = "";
for (var i = 0; i < ResultSet.length; i++)
{
msg += ResultSet[i] + "=24\n";
}
msg += "计算结束,共得到"+ResultSet.length+"个不同结果";
return msg;
}
function Assert(flag)
{
if (!flag)
{
throw new Error('Assertion failed!');
}
}
Array.prototype.clone = function()
{
return this.slice(0);
}
function calcul(stack,oper)
{
Assert(oper == '+' || oper == '-' || oper == '*' || oper == '/');
var lift = new Array();
lift[0] = stack.pop()-0;
lift[1] = stack.pop()-0;
switch(oper)
{
case '+': stack.push(lift[1] + lift[0]);
break;
case '-': stack.push(lift[1] - lift[0]);
break;
case '*': stack.push(lift[1] * lift[0]);
break;
case '/': stack.push(lift[1] / lift[0]);
break;
}
return lift;
}
function parseExp() //由逆波兰式构造出表达式
{
var stack = new Array();
var exprs = new Array();