Оглавление статьи
- Вводная часть
- Сумма всех чисел
- Факториал числа
- Обратный порядок массива
- Палиндром строки
- Число Фибоначчи
Вводная часть
Рекурсия - позволяет функциям вызывать сами себя в своем исполнении. Этот метод решения задач и алгоритмов не только эффективен, но и обладает уникальной красотой в своей структуре. В этой статье мы рассмотрим, что такое рекурсия, как она работает и как ее можно применить для решения базовых задач в программировании.
Сумма всех чисел
Решение задачи на сумму чисел заданного числа.
Например: 4 => 1 + 2 + 3 + 4 = 10
const num = 4
// Сумма всех чисел: 10
console.log('Сумма всех чисел:', sum(num))
function sum(num) {
if (num < 1) {
return num
}
return num + sum(num - 1)
}
Факториал числа
Решение задачи на нахождение факториала числа.
Например: 4 => 1 * 2 * 3 * 4 = 24
const num = 4
// Факториал числа: 24
console.log('Факториал числа:', fact(num))
function fact(num) {
if (num === 1) {
return 1
}
return num * fact(num - 1)
}
Обратный порядок массива
Решение задачи на переворачивание массива в обратный порядок.
Например: [2,5,1,3,6,4] => [4,6,3,1,5,2]
const arr = [2,5,1,3,6,4]
// Исходный массив: [2,5,1,3,6,4]
console.log('Исходный массив:', arr)
reverse(0, arr)
// Перевернутый массив: [4,6,3,1,5,2]
console.log('Перевернутый массив', arr)
function reverse(i, arr) {
const length = arr.length
if (i >= Math.floor(length / 2)) {
return
}
const tmp = arr[i]
arr[i] = arr[length - i - 1]
arr[length - i - 1] = tmp
reverse(i + 1, arr)
}
Палиндром строки
Решение задачи на определение является ли строка палиндромом.
Например: madam => madam с лево на право и справа на лево читается одинаково
let str = 'madam'
// Исходная строка: madam
console.log('Исходная строка:', str)
let newStr = reverse(0, str)
// Исходная строка: madam
console.log('Перевернутая строка:', newStr)
// Палиндром
console.log(str === newStr ? 'Палиндром' : 'Не палиндром')
function reverse(i, str) {
const length = str.length
if (i >= length / 2) {
return str
}
const newStr = str.split('')
const tmp = newStr[i]
newStr[i] = newStr[length - 1 - i]
newStr[length - 1 - i] = newStr[i]
return reverse(i + 1, newStr.join(''))
}
Число Фибоначчи
Решение задачи на нахождение числа Фибоначчи. Числовая последовательность, первые два числа которой являются 0 и 1, а каждое последующее за ними число является суммой двух предыдущих.
Например: 10 => 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55
let num = 10
// Исходное число: 10
console.log('Исходное число:', num) // 10
num = fibonacci(num)
// Число Фибоначчи: 55
console.log('Число Фибоначчи:', num) // 55
function fibonacci(num) {
if (num <= 1) {
return num
}
return fibonacci(num - 1) + fibonacci(num - 2)
}