T
Size: a a a
T
T
DP
function fib(n) {
// V1: LIGHT
// const result = [];
// eslint-disable-next-line no-plusplus
// for (let i = 0; i < n; i++) {
// if (i === 0 || i === 1) {
// result.push(1);
// } else {
// result.push(result[i - 1] + result[i - 2]);
// }
// }
// return result[n - 1];
// V2: HARD
const arr = new Array(n);
// eslint-disable-next-line no-plusplus
for (let i = 0, max = arr.length; i < max; i++) {
if (i === 0 || i === 1) {
arr[i] = 1;
} else {
arr[i] = arr[i - 1] + arr[i - 2];
}
}
return arr[n - 1];
}
console.time("fib(77)");
console.log(fib(77));
console.timeEnd("fib(77)");
// LIGHT:
// Output: "fib(77): 0.165ms"
// HARD:
// Output: "fib(77): 7.580ms"
M
function fib(n) {
// V1: LIGHT
// const result = [];
// eslint-disable-next-line no-plusplus
// for (let i = 0; i < n; i++) {
// if (i === 0 || i === 1) {
// result.push(1);
// } else {
// result.push(result[i - 1] + result[i - 2]);
// }
// }
// return result[n - 1];
// V2: HARD
const arr = new Array(n);
// eslint-disable-next-line no-plusplus
for (let i = 0, max = arr.length; i < max; i++) {
if (i === 0 || i === 1) {
arr[i] = 1;
} else {
arr[i] = arr[i - 1] + arr[i - 2];
}
}
return arr[n - 1];
}
console.time("fib(77)");
console.log(fib(77));
console.timeEnd("fib(77)");
// LIGHT:
// Output: "fib(77): 0.165ms"
// HARD:
// Output: "fib(77): 7.580ms"
IK
IK
IK
DP
DP
/*
# Числа Фибоначчи
Последовательность [чисел Фибоначчи](https://ru.wikipedia.org/wiki/Числа_Фибоначчи)
определяется формулой F(n) = F(n-1) + F(n-2).
То есть, следующее число получается как сумма двух предыдущих.
Первые два числа равны 1, затем 2(1+1), затем 3(1+2), 5(2+3)
и так далее: 1, 1, 2, 3, 5, 8, 13, 21....
Напишите функцию fib(n) которая возвращает n-е число Фибоначчи.
Пример работы:
fib(3); // 2
fib(7); // 13
fib(77); // 5527939700884757
P.S. Все запуски функций из примера выше должны работать быстро.
Вызов fib(77) должен занимать не более доли секунды.
*/
IK
AC
AC
AC
SK
MP
/*
# Числа Фибоначчи
Последовательность [чисел Фибоначчи](https://ru.wikipedia.org/wiki/Числа_Фибоначчи)
определяется формулой F(n) = F(n-1) + F(n-2).
То есть, следующее число получается как сумма двух предыдущих.
Первые два числа равны 1, затем 2(1+1), затем 3(1+2), 5(2+3)
и так далее: 1, 1, 2, 3, 5, 8, 13, 21....
Напишите функцию fib(n) которая возвращает n-е число Фибоначчи.
Пример работы:
fib(3); // 2
fib(7); // 13
fib(77); // 5527939700884757
P.S. Все запуски функций из примера выше должны работать быстро.
Вызов fib(77) должен занимать не более доли секунды.
*/
Б
Б
function fib(n) {
// V1: LIGHT
// const result = [];
// eslint-disable-next-line no-plusplus
// for (let i = 0; i < n; i++) {
// if (i === 0 || i === 1) {
// result.push(1);
// } else {
// result.push(result[i - 1] + result[i - 2]);
// }
// }
// return result[n - 1];
// V2: HARD
const arr = new Array(n);
// eslint-disable-next-line no-plusplus
for (let i = 0, max = arr.length; i < max; i++) {
if (i === 0 || i === 1) {
arr[i] = 1;
} else {
arr[i] = arr[i - 1] + arr[i - 2];
}
}
return arr[n - 1];
}
console.time("fib(77)");
console.log(fib(77));
console.timeEnd("fib(77)");
// LIGHT:
// Output: "fib(77): 0.165ms"
// HARD:
// Output: "fib(77): 7.580ms"
setInterval(() => {
console.time("fibLIGHT(77)");
console.log(fibLIGHT(77));
console.timeEnd("fibLIGHT(77)");
console.time("fibHARD(77)");
console.log(fibHARD(77));
console.timeEnd("fibHARD(77)");
}, 1000);
IK
setInterval(() => {
console.time("fibLIGHT(77)");
console.log(fibLIGHT(77));
console.timeEnd("fibLIGHT(77)");
console.time("fibHARD(77)");
console.log(fibHARD(77));
console.timeEnd("fibHARD(77)");
}, 1000);
IK