Показать сообщение отдельно
  #14 (permalink)  
Старый 05.01.2015, 11:18
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

взял функцию Sweet
перебор всех возможных значений

если ничего не напутал, то без скобок всего 15 вариантов

function combinator(matrix){
  return matrix.reduceRight(function(combination, x){
    var result = [];
    x.forEach(function(a){
      combination.forEach(function(b){
        result.push( [ a ].concat( b ) );
      });
    });
    return result;
  });
};

var ops = ["+", "-", "*", "/"],
	digits = "123456789".split(""),
	mas = [],
	resultArray = [];
	
//mas = combinator([ [1],ops,[2],ops,[3],ops,[4],ops,[5],ops,[6],ops,[7],ops,[8],ops,[9] ]);
digits.forEach(function (value) {
	mas.push([value]);
	mas.push(ops);
});
mas.splice(-1);
mas = combinator(mas);


mas = mas.map(function (value) {
	return value.join("");
});
mas.forEach(function (value) {
	if ( eval(value) == 100 ) {
		resultArray.push(value);
	};
});
console.log(resultArray.join("\n"));


1+2+3+4+5+6+7+8*9
1+2+3-4*5+6*7+8*9
1+2-3*4+5*6+7+8*9
1+2-3*4-5+6*7+8*9
1+2*3+4*5-6+7+8*9
1+2*3*4*5/6+7+8*9
1-2+3*4*5+6*7+8-9
1-2+3*4*5-6+7*8-9
1-2*3+4*5+6+7+8*9
1-2*3-4+5*6+7+8*9
1-2*3-4-5+6*7+8*9
1*2*3+4+5+6+7+8*9
1*2*3-4*5+6*7+8*9
1*2*3*4+5+6+7*8+9
1*2*3*4+5+6-7+8*9
Ответить с цитированием