早教吧 育儿知识 作业答案 考试题库 百科 知识分享

5899四个数可以得24

题目详情
5899四个数可以得24
▼优质解答
答案和解析
不行,无解
另给你一个js 算24的,代码如下:




24点


var checkInput = function() {
var no1 = parseFloat(document.forms['form']['no1'].value);
var no2 = parseFloat(document.forms['form']['no2'].value);
var no3 = parseFloat(document.forms['form']['no3'].value);
var no4 = parseFloat(document.forms['form']['no4'].value);
if (isNaN(no1) || no1 = 100) {
alert("第一个数字非法!,应该输入大于0小于100的数字!");
return;
} else if (isNaN(no2) || no2 = 100) {
alert("第二个数字非法!,应该输入大于0小于100的数字!");
return;
} else if (isNaN(no2) || no2 = 100) {
alert("第三个数字非法!,应该输入大于0小于100的数字!");
return;
} else if (isNaN(no2) || no2 = 100) {
alert("第四个数字非法!,应该输入大于0小于100的数字!");
return;
} else {
calc24([no1, no2, no3, no4]);
}
};
var calc24 = function(nums) {
var sign = ['+', '-', '*', '/'];
var expr = new Array(8);
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 4; k++) {
for (m = 0; m < 4; m++) {
for (n = 0; n < 4; n++) {
if (n == m) {
continue;
}
for (p = 0; p < 4; p++) {
if (p == m || p == n) {
continue;
}
for (q = 0; q < 4; q++) {
if (q == m || q == n || q == p) {
continue;
}
expr[1] = sign[i];
expr[6] = nums[p];
expr[7] = nums[q];
expr[0] = 1;
expr[2] = sign[j];
expr[3] = sign[k];
expr[4] = nums[m];
expr[5] = nums[n];
//if(eval(expr)==24){
if (Math.abs(eval(expr) - 24) < 0.0000001) {
expr[0] = 1;
alert(tostring(expr) + '=24');
return;
}
expr[0] = 1;
expr[2] = sign[j];
expr[3] = nums[m];
expr[4] = sign[k];
expr[5] = nums[n];
//if(eval(expr)==24){
if (Math.abs(eval(expr) - 24) < 0.0000001) {
expr[0] = 1;
alert(tostring(expr) + '=24');
return;
}
expr[0] = 1;
expr[2] = sign[j];
expr[3] = nums[m];
expr[4] = nums[n];
expr[5] = sign[k];
//if(eval(expr)==24){
if (Math.abs(eval(expr) - 24) < 0.0000001) {
expr[0] = 1;
alert(tostring(expr) + '=24');
return;
}
expr[0] = 1;
expr[2] = nums[m];
expr[3] = sign[j];
expr[4] = sign[k];
expr[5] = nums[n];
//if(eval(expr)==24){
if (Math.abs(eval(expr) - 24) < 0.0000001) {
expr[0] = 1;
alert(tostring(expr) + '=24');
return;
}
expr[0] = 1;
expr[2] = nums[m];
expr[3] = sign[j];
expr[4] = nums[n];
expr[5] = sign[k];
//if(eval(expr)==24){
if (Math.abs(eval(expr) - 24) < 0.0000001) {
expr[0] = 1;
alert(tostring(expr) + '=24');
return;
}
}
}
}
}
}
}
}
alert('无解!');
};
var eval = function(expr) {
var i = expr[0];
expr[0]++;
if (!isNaN(expr[i])) {
return expr[i];
}
if (expr[i] == '+') {
return eval(expr) + eval(expr);
} else if (expr[i] == '-') {
return eval(expr) - eval(expr);
} else if (expr[i] == '*') {
return eval(expr) * eval(expr);
} else if (expr[i] == '/') {
return eval(expr) / eval(expr);
} else {
alert('error!');
}
};
var tostring = function(expr) {
var i = expr[0];
expr[0]++;
if (!isNaN(expr[i])) {
return expr[i];
} else {
if (i > 1) {
return ('(' + tostring(expr) + expr[i] + tostring(expr) + ')');
} else {
return (tostring(expr) + expr[i] + tostring(expr));
}
}
};


























第一个数:



第二个数:



第三个数:



第四个数: