Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function calc(x, y, p){
- p || (p = 6);
- var a = Array(p),
- e, pos, toeval,
- result = [];
- // Если в числе разрядов больше чем указано — обрезаем его
- x = x % Math.pow(10, p);
- // Разбиваем на компоненты
- for (var i = 0; i < p; i++){
- e = Math.pow(10, i);
- a[i] = x > i * Math.pow(10, i) ?
- (x % (e*10) - x % e) / e : 0;
- }
- // Славарь операторов
- o = ['+','*'];
- // Максимальное количество возможных вариантов
- e = Math.pow(o.length, p);
- // Перебор и сравнение
- for (var i = 0; i < e; i++){
- pos = i.toString(o.length)
- toeval = '';
- for (var j = 0; j < p; j++)
- toeval = toeval + o[(pos[j]||0)] + a[j];
- toeval = toeval.replace(/^\*/,'');
- if (eval(toeval) == y)
- result.push(toeval);
- }
- return result.length > 0 ? result : false;
- }
- console.log( calc(551, 100) );
- console.log( calc(554000, 100) );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement