Вы должны использовать рекурсию для решения этих проблем.
Можно решить их нерекурсивно, и у вас, вероятно, возникнут соблазн использовать инструменты, которые вы уже понимаете. Однако это побеждает цель этого упражнения, которая состоит в том, чтобы стать более комфортным, используя рекурсию.
Для каждого из этих упражнений, без использования кода, вы должны определить следующее:
Начните каждую проблему, понимая проблему и придумав некоторый вход и вывод образца. В некоторых тренировках мы предоставили образцы входов и выходов для вашего удобства.
Напишите рекурсивную функцию, которая подсчитывает, сколько овец перепрыгивает через забор. Ваша программа должна взять число в качестве ввода. Это число должно быть количеством овец, которые у вас есть. Функция должна отображать номер вместе с сообщением «Другая овца перепрыгивает через забор», пока не останется овец.
Напишите функцию, называемую PowerCalculator (), которая принимает два параметра, целое число в качестве основания и другое целое число в качестве показателя. Функция возвращает значение базы, поднятого к мощности показателя. Используйте только показатели, больше или равны 0 (положительные числа)
-PowerCalculator (10,2) должен вернуть 100 -PowerCalculator (10, -2), должен возвращать показатель должен быть> = 0
Напишите функцию, которая меняет строку. Возьмите строку в качестве ввода, отмените строку и верните новую строку.
Рассчитайте n -й треугольный номер. Треугольное число подсчитывает объекты, которые могут сформировать равносторонний треугольник. N -й треугольное число - это количество точек, составляющих треугольник с n точками на стороне, и равно сумме N натуральных чисел от 1 до N. Это треугольная численная последовательность: 1, 3, 6, 10, 15, 21, 28, 36, 45.
Напишите рекурсивную функцию, которая разбивает строку на основе сепаратора (аналогично string.prototype.split). Не используйте функцию разделения JS Array для решения этой проблемы.
Напишите рекурсивную функцию, которая печатает последовательность Fibonacci данного числа. Последовательность Фибоначчи представляет собой серию чисел, в которых каждое число представляет собой сумму 2 предыдущих чисел. Например, 7 -е число Фибоначчи в последовательности Фибоначчи составляет 13. Последовательность выглядит следующим образом: 1, 1, 2, 3, 5, 8, 13.
Напишите рекурсивную функцию, которая находит факторию данного числа. Фактор числа можно найти путем умножения этого числа на каждом числе между собой и 1. Например, фактор 5 составляет 5 * 4 * 3 * 2 * 1 = 120.
Вы вошли в лабиринт и вам нужно найти выход из него. Существует более одного возможного пути через лабиринт к единственной точке выхода. Напишите рекурсивную функцию, которая поможет вам найти возможный путь через лабиринт.
Лабиринт представлен как матрица N*M. Начальная точка - верхний левый угол, а выход обозначен E. Для простоты используйте нижний правый угол лабиринта в качестве выхода. Вы не можете выйти за пределы границ лабиринта. У лабиринта есть заблокированные отрывки, и вы не можете пройти через них. Эти заблокированные отрывки обозначены *. Прохождение через заблокированную ячейку, а также прохождение, хотя ячейка, которую вы уже прошли ранее, запрещено.
Для большого лабиринта в тренировке возможный путь выхода может быть rrddllddrrrrrrr
Используйте вышеупомянутый большой лабиринт и измените свое решение, чтобы он нашел все возможные пути выхода через лабиринт. Чтобы найти все возможные пути выхода через лабиринт, подумайте о том, сколько мест вы можете двигаться на каждом шагу. Возможно, вверх, вниз, влево или вправо?
Обратите внимание, что этот лабиринт имеет 3 пути. Ваша рекурсивная функция должна печатать все три пути с правильными направлениями. Например, учитывая лабиринт выше, программа должна вывести следующее:
Анаграмма - это любое слово или фраза, в которой используются буквы данного («субъекта») слова или фразы в другом, перестроенным порядком. Напишите функцию, которая создает список анаграмм, перечисляя все перестройки данного слова. Например, если пользователь набирает «восток», программа должна перечислить все 24 перестановки, включая «eats», «etas», «чаи» и не слоя, как «Tsae».
Подсказка: для вашего алгоритма вы можете подумать о префиксе и использовать его для создания новых слов. Например, учитывая «Восток», используйте «E» в качестве префикса и поместите его перед всеми 6 перестановками «AST» - «AST», «ATS», «SAT», «STA», «TAS» и «TSA». Это даст вам слова «восток», «ест», «esat», «esta», «etas» и «etsa». Продолжайте таким образом, пока не найдете все анаграммы для "Востока". Затем вы можете использовать «A» в качестве префикса и проникнуть в оставшиеся слова «EST». Для «Востока» должно быть 24 слова.
Напишите рекурсивную функцию, которая печатает объект организационной диаграммы в тренировке. Ваш вывод должен быть как показано в тренировке с надлежащим отступом, чтобы показать иерархию.
Напишите рекурсивную функцию, которая распечатывает бинарное представление данного числа. Например, программа должна принимать 3 в качестве ввода и печати 11 в качестве вывода, или 25 в качестве ввода и печати 11001 в качестве вывода. Обратите внимание, что двоичное представление 0 должно быть 0.