Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2020, 21:48
Новичок на форуме
Отправить личное сообщение для джоо Посмотреть профиль Найти все сообщения от джоо
 
Регистрация: 18.12.2020
Сообщений: 3

вопрос по книге 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" вроде же они должны были добавляться.

Последний раз редактировалось джоо, 18.12.2020 в 22:22.
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2020, 11:10
Новичок на форуме
Отправить личное сообщение для джоо Посмотреть профиль Найти все сообщения от джоо
 
Регистрация: 18.12.2020
Сообщений: 3

мдяя, понял. вот я тупой, вообще ни туда шёл
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2020, 11:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

джоо,
растёт дерево вариантов, на ветках все сочетания вариантов(+5 и *3), ветки выше start больше не дают вариантов(роста), если какая то ветка вырастает до нужной длины рост кроны дерева прекратится и вернётся эта ветка

так как 63 больше 24 , строка 14 то результат null попадёт в строку 20 и эта ветка прекратит рост.
в лог будет отображаться не "сокращение" а совершенно другая ветка.
как-то так...
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2020, 11:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

джоо,
Сообщение от джоо
bconsole.log(start+history);
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2020, 19:35
Новичок на форуме
Отправить личное сообщение для джоо Посмотреть профиль Найти все сообщения от джоо
 
Регистрация: 18.12.2020
Сообщений: 3

рони,
спасибо, понял все.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Вопрос по изменению кода JavaScript RockTeam Ваши сайты и скрипты 17 21.02.2013 18:30
вопрос про кнопку javascript Ruxx Общие вопросы Javascript 9 22.01.2013 21:01
javascript вставки в vrml сцены. Передать событие из броузера Proletariy Javascript под браузер 0 10.05.2011 12:26
Нубический вопрос по JavaScript! Гость Общие вопросы Javascript 2 31.07.2008 00:13