вопрос по книге ELOQUENT JAVASCRIPT
всем привет
начал учить JS по книге ELOQUENT JAVASCRIPT столкнулся с проблемой, которую не могу понять. выложу код и результат для разбора. код: <!doctype html> <html> <head> </head> <body> <script> function findSolution(target){ function find(start,history){ bconsole.log(start+history); if(start == target) return history; else if(start > target) return null; else // console.log(start+history); return find(start + 5, "(" + history + "+5)" ) || find(start * 3, "[" + history + "*3]"); } return find(1,"1"); } console.log(findSolution(24)); </script> </body> </html> результат: 11 6(1+5) 11((1+5)+5) 16(((1+5)+5)+5) 21((((1+5)+5)+5)+5) 26(((((1+5)+5)+5)+5)+5) 63[((((1+5)+5)+5)+5)*3] 48[(((1+5)+5)+5)*3] 33[((1+5)+5)*3] 18[(1+5)*3] 23([(1+5)*3]+5) 28(([(1+5)*3]+5)+5) 69[([(1+5)*3]+5)*3] 54[[(1+5)*3]*3] 3[1*3] 8([1*3]+5) 13(([1*3]+5)+5) 18((([1*3]+5)+5)+5) 23(((([1*3]+5)+5)+5)+5) 28((((([1*3]+5)+5)+5)+5)+5) 69[(((([1*3]+5)+5)+5)+5)*3] 54[((([1*3]+5)+5)+5)*3] 39[(([1*3]+5)+5)*3] 24[([1*3]+5)*3] [([1*3]+5)*3] Uncaught SyntaxError: Unexpected token '=' до этого: 48[(((1+5)+5)+5)*3] все прекрасно понятно, а вот после не могу понять. собственно вопрос: как переменная "start" начинает сокращаться т.е. от значения 63 становится 48. так же сокращаются символы на переменной "history" вроде же они должны были добавляться. |
мдяя, понял. вот я тупой, вообще ни туда шёл
|
джоо,
растёт дерево вариантов, на ветках все сочетания вариантов(+5 и *3), ветки выше start больше не дают вариантов(роста), если какая то ветка вырастает до нужной длины рост кроны дерева прекратится и вернётся эта ветка так как 63 больше 24 , строка 14 то результат null попадёт в строку 20 и эта ветка прекратит рост. в лог будет отображаться не "сокращение" а совершенно другая ветка. как-то так... |
джоо,
Цитата:
|
рони,
спасибо, понял все. |
Часовой пояс GMT +3, время: 23:24. |