XXI.


XXI. Рекурсивная функция


XXI. Рекурсивная функция




Создайте рекурсивную функцию (процедуру), которая принимает в качестве параметра целое положительное число n, введённое с клавиатуры, и выводит на экран все числа от 1 до n.
(Проверка⇑ ввод: 5 ⇒ вывод: 1, 2, 3, 4, 5)

Создайте рекурсивную функцию, которая принимает в качестве параметра целое положительное число n, введённое с клавиатуры, и возвращает сумму всех чисел от 1 до n.
(Проверка⇑ ввод: 7 ⇒ вывод: сумма чисел от 1 до 7 равна 28)

Создайте рекурсивную функцию, которая принимает в качестве параметра целое число n (n≥0), введённое с клавиатуры, и возвращает факториал этого числа.
(Проверка⇑ ввод: 5 ⇒ вывод: факториал числа 5 равен 120)

Создайте рекурсивную функцию, которая принимает в качестве параметра номер n числа в последовательности Фибоначчи и возвращает значение числа. Число n вводится с клавиатуры.
(Проверка⇑ ввод: 8 ⇒ вывод: значение числа Фибоначчи под номером 8 равно 21)

Создайте рекурсивную функцию, которая принимает в качестве параметра целое положительное число n и вычисляет, какой степенью числа 3 является это число. Число n вводится с клавиатуры.
(Проверка⇑ ввод: 81 ⇒ вывод: 4)

Создайте рекурсивную функцию, которая принимает в качестве параметра целое положительное число n, и вычисляет новое число, получаемое приписыванием слева цифры 7 к числу n. Число n вводится с клавиатуры.
(Проверка⇑ ввод: 489 ⇒ вывод: новое число - 7489)

Создайте рекурсивную функцию (процедуру), которая принимает в качестве параметра целое положительное число n и выводит на экран цифры этого числа в обратном порядке. Число n вводится с клавиатуры.
(Проверка⇑ ввод: 728 ⇒ вывод: 8, 2, 7)

var n;
function print_numbers(n) {
if (n >= 1) {
print_numbers(n - 1);
window.alert(n);
}
}
n = parseFloat(window.prompt('Введите число'));
print_numbers(n);

var n;
var s;
function calculate_sum(n) {
if (n > 0) {
s = (s + n) + calculate_sum(n - 1);
}
return s;
}
n = parseFloat(window.prompt('Введите число'));
s = 0;
s = calculate_sum(n);
window.alert(['сумма чисел от 1 до ',n,' равна ',s].join(''));

var n;
var f_n_;
function f_n_(n) {
if (n == 0) {
f_n_ = 1;
} else {
f_n_ = n * f_n_(n - 1);
}
return f_n_;
}
n = parseFloat(window.prompt('Введите число'));
f_n_ = f_n_(n);
window.alert(['факториал числа ',n,' равен ',f_n_].join(''));

var n;
var f_n_;
function f_n_2(n) {
if (n == 0) {
f_n_ = 0;
} else if (n == 1) {
f_n_ = 1;
} else {
f_n_ = f_n_2(n - 1) + f_n_2(n - 2);
}
return f_n_;
}
n = parseFloat(window.prompt('Введите номер числа в последовательности Фибоначчи'));
f_n_ = f_n_2(n);
window.alert(['значение числа Фибоначчи под номером ',n,' равно ',f_n_].join(''));

var n;
var f_n_;
var k;
function f_n_(n) {
if (n == 1) {
f_n_ = 0;
} else if (n % 3 != 0) {
f_n_ = -1;
} else {
k = f_n_(Math.floor(n / 3));
if (k == -1) {
f_n_ = -1;
} else {
f_n_ = k + 1;
}
}
return f_n_;
}
n = parseFloat(window.prompt('Введите число'));
f_n_ = f_n_(n);
window.alert(f_n_);

var n;
var f_n_;
function f_n_(n) {
if (n < 10) {
f_n_ = 70 + n;
} else {
f_n_ = f_n_(Math.floor(n / 10)) * 10 + n % 10;
}
return f_n_;
}
n = parseFloat(window.prompt('Введите число'));
f_n_ = f_n_(n);
window.alert(String('новое число - ') + String(f_n_));

var n;
function f_n_(n) {
if (n < 10) {
window.alert(n);
} else {
window.alert(n % 10);
f_n_(Math.floor(n / 10));
}
}
n = parseFloat(window.prompt('Введите число'));
f_n_(n);