Алексей
Локалхост
Нет, я спрашиваю не про дебиан а про сервер скуля
Алексей
Да
Значит все ок. Надо зайти в pgadmin и там попробовать создавать юзера
Vyacheslav
Значит все ок. Надо зайти в pgadmin и там попробовать создавать юзера
Только запрос к серверу возвращает вместо локалхоста - путь к файлу и номер порта Это прям интересный ответ )
Владимир
Мужчины, прошу помощи. const smallestDivisor = (num) => { const iter = ( corr, ass) => { if(corr % ass === 0) { return ass; } else if (corr === ass) { return corr; } return iter (corr, ass++); }; return iter(num, 2); } console.log(smallestDivisor(15)); Ошибка, максимум стак. Это итеративный метод, я так понял, мне нужен правильный терминальный сценарий (условия выхода из рекурсии). Подскажите, в чём трабл и как исправить ? )
Владимир
Это бесконечная рекурсия Ты пробовал пошагово программу дебажить?
Пробовал , на if(corr % ass === 0) ошибка максимум стак. А почему не знаю...
Vyacheslav
А за шаг до этого какие значения переменных?
Владимир
А за шаг до этого какие значения переменных?
Она даже не доходит, сразу ошибка
Vyacheslav
Она даже не доходит, сразу ошибка
Так пошагово Прям с начала программы Не может она тебе максимум стак на первом же шаге выдавать
Сидредин
О, рекурсия
Сидредин
О, рекурсия
О, рекурсия
Владимир
А по идеи значение должны быть 15 и 2, как я указал. Логика проста, если корр делится без остатка , то возвращаем асс. Это условие не выполняется проверяем второе условие, оно тоже в минус, вызываем функцию снова с асс + 1. Так должна работать
Владимир
НОК ищешь?
Наименьший делитель
Владимир
Ага... Что-то не тот принт походу...
Vyacheslav
Ага... Что-то не тот принт походу...
Ну как ты переменные в консоль выводишь? Я не знаю джаваскрипт )
Владимир
console.log (Имя переменной);
Vyacheslav
console.log (Имя переменной);
Вот его и поставь перед каждым из ретурнов внутри ифов
Владимир
Ну как ты переменные в консоль выводишь? Я не знаю джаваскрипт )
Офигеть, ты js не знаешь, а вчера мне так здорово объяснил, что я понял
Vyacheslav
Офигеть, ты js не знаешь, а вчера мне так здорово объяснил, что я понял
Потому что этот код на всех языках одинаковый Я его учил по примерам на Лиспе
Vyacheslav
там постоянно только эти значения
Да чо ты.... Пусть сам посмотрит )
Maksim Pozharskiy
там постоянно только эти значения
потому что они не меняются нигде
Сидредин
потому что они не меняются нигде
да. если 2 не подходит - что надо делать? 3 пробовать? Забыл эту тему
Maksim Pozharskiy
Зависит от задачи, но точно не надо опять запихивать 2)
Сидредин
Владимир
да. если 2 не подходит - что надо делать? 3 пробовать? Забыл эту тему
О, точно, я неправильно дебаг поставил отметки. Сейчас показались. Так я же поставил, чтобы ass ++ был, как раз для этого, но код не доходит
Владимир
поставь на последней строке лучше. Чтобы с самого начала
У меня зависло всё, это прикол ? Или комп тупит ?)
Владимир
забыл про префиксный и инфиксный инкременты?)
Ого, погодите ка, у меня кажись сработало
Сидредин
Когда пишишь ++ после переменной - сначала выполняется операция с этой переменной, а потом её значение увеличивается на 1
Сидредин
Когда пишишь ++ после переменной - сначала выполняется операция с этой переменной, а потом её значение увеличивается на 1
но прикол в том, что значение переменной увеличится на верхнем уровне, а во внутреннюю функцию ты уже передал старое значение, т.е. 2 в данном случае
Сидредин
Офигеть, всё получилось, капец, я бы в жизни не додумался, это жеско
бывает) Иногда из-за точки с запятой всё ломается))
Сидредин
Прям ВСЕ получилось?
Жизнь удалась)
Владимир
Прям ВСЕ получилось?
Да, всё вышло. Функция работает , офигеть.
Сидредин
Поэтому в некоторых языках вроде нет оператора ++ вообще, так как он усложняет иногда код
Сидредин
в питоне или го нет его, насколько я помню. Возможно, путаю
Владимир
Странно, в хекслере один фиг еррор
Сидредин
странно. Передай сюда ass, а строкой выше добавь ass++;
Сидредин
после фигурной скобки добавь только)
Сидредин
а не внутри неё)
Сидредин
вот сюда
Владимир
перед ретурном ?
Владимир
как-то странно получилось..
Vyacheslav
как-то странно получилось..
Ну на разных строчках же )
TSS
Здравствуйте, подскажите как из массива вывести самое короткое имя
Сидредин
как-то странно получилось..
добавь ; и перенеси return на след. строку
Владимир
Ну на разных строчках же )
Аа )) ) тогда всё ок ) Такой же трабл )
Владимир
Владимир
Сидредин
да, для красоты 1 пробел слева от return тоже можно убрать)))
Vyacheslav
Попробуй вместо ++ сделать Асс = Асс +1
Сидредин
может хекслет тестирует на огромных числах? Может там переполнение стека из-за этого?
Сидредин
Попробуй вместо ++ сделать Асс = Асс +1
тоже об этом думал, но вроде ++ везде работать должно
Сидредин
ааа, тогда странно
Vyacheslav
Попробовал )
И тоже стак переполняется?
Владимир
А в браузере всё ок
Vyacheslav
А в браузере всё ок
А скобочки ещё посчитай фигурные Вдруг промахнулся?
Владимир
Как бы там не было, задача решена. Спасибо огромное, Сидредин и Вячеслав. Рекурсия такое очко, но по крайней мере я её чуть чуть понимаю ) Со скобками всё ок )
Vyacheslav
Как бы там не было, задача решена. Спасибо огромное, Сидредин и Вячеслав. Рекурсия такое очко, но по крайней мере я её чуть чуть понимаю ) Со скобками всё ок )
Главное с ней понять что она - залупень та ещё ))) Хотя есть некоторые алгоритмы которые без рекурсии не решаются...
Vyacheslav
Здравствуйте, подскажите как из массива вывести самое короткое имя
Не очень понятное задание Что за имена, из чего массив состоит?