62,243
社区成员




var arrangement = function(){
var self = this;
var arr = [1,2,3,4,5,6,7,8,9];
self.result = [];
// 计算的方法
self.count = function(k,m){
if(k == m){
var item = [];
for (var i = 0; i <= m; i++) {
item.push(arr[i]);
};
var num = (item[0] * 10 + item[1])*item[2] + (item[3] * 100 + item[4] * 10 + item[5]) / item[6] - (item[7] * 10 + item[8]);
if(num == 0 && item[2] != 1 && item[6] !=1) {
var formula = (item[0] * 10 + item[1])+"*"+item[2]+"+"+(item[3] * 100 + item[4] * 10 + item[5])+"/"+item[6]+"-"+(item[7] * 10 + item[8]);
self.result.push(formula);
}
}
else{
for (var i = k; i <= m; i++) {
// if(arr[k] == 1 && (i == 2 || i == 6)){ //想减少计算次数,但导致了结果错误
// continue;
// }
// else{
self.swap(k,i);
self.count(k+1,m);
self.swap(k,i);
// }
};
}
}//end fun
// 交换数组两个元素的方法
self.swap = function(a,b){
var item = arr[a];
arr.splice(a,1,arr[b]);
arr.splice(b,1,item);
}//end func
}//end func
var MyArrangement = new arrangement();
MyArrangement.count(0,8);
console.log(MyArrangement.result);
var re = []
var cp = function (l) {
var e = l[0] + '' + l[1] + '*' + l[2] + '+' + l[3] + '' + l[4] + '' + l[5] + '/' + l[6] + '-' + l[7] + '' + l[8];
if (l[6] != 1 && eval(e) == 0) {
re.push(e);
}
}
//网上找的全排列算法
function fullSort(arr) {
var result = [];
if (arr.length == 1) {
if(arr[0] + arr)
result.push(arr);
return result;
}
for (var i = 0; i < arr.length; i++) {
var temp = [];
temp.push(arr[i]);
var remain = arr.slice(0);
remain.splice(i, 1);
var temp2 = fullSort(remain).concat();
for (var j = 0; j < temp2.length; j++) {
temp2[j].unshift(temp[0]);
result.push(temp2[j]);
}
}
return result;
}
var s = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var r = fullSort(s);
for (var i = 0; i < r.length; i++) {
cp(r[i]);
}
console.log(re);
/* 共11个答案
12*4+376/8-95
17*3+258/6-94
23*1+468/9-75
26*1+483/7-95
27*1+536/8-94
35*2+168/7-94
36*1+472/8-95
45*1+376/8-92
46*1+259/7-83
58*1+234/6-97
63*1+245/7-98
*/