๐บ๐ธ Write a function that accepts a number (n), and returns the nth Fibonacci number.
A Fibonacci sequence is a list of numbers that begins with 0 and 1, and each subsequent number is the sum of the previous two.
For example, the first five Fibonacci numbers are:
0 1 1 2 3
If n
were 4
, your function should return 3
; for 5
, it should return 5
.
Advance 1
: Use a recursive
solution to this problem;Advance 2
: implement an iterative
solution.๐ฆ๐ท Escriba una funciรณn que acepte un nรบmero (n) y devuelve el nรบmero correspondiente de la secuencia de Fibonacci.
La secuencia de Fibonacci es una lista de nรบmeros que empiezan con 0 y 1 y cada nรบmero sucesivo es la suma de dos anteriores.
Por ejemplo, los primeros cinco nรบmeros de Fibonacci son los siguientes.
0 1 1 2 3
Si n
es 4
, su funciรณn debe regresar 3
, si es 5
, debe retornar 5
.
Avanzado 1
: Use una soluciรณn recursiva
para este problema.Avanzado 2
: Implemente una solucion iterativa
.๐ฐ๐ท ์ซ์ n์ ์ธ์๋ก ๋ฐ๊ณ n๋ฒ์งธ์ ํผ๋ณด๋์น ์ซ์๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ์ฐ์ธ์.
ํผ๋ณด๋์น ์ํ์ค๋ 0๊ณผ 1๋ก ์์ํ๋ ์ซ์์ ๋ชฉ๋ก์ด๋ฉฐ, ๊ฐ ํ์ ์ซ์๋ ์ด์ ๋ ๊ฐ์ ํฉ์ด๋ค.
์๋ฅผ ๋ค์ด, ์ฒ์ 5๊ฐ์ ํผ๋ณด๋์ฐ ์ซ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
0 1 1 2 3
n
์ด 4
๋ผ๋ฉด ๋น์ ์ ํจ์๋ 3
์ ๋ฐํ, 5
๋ผ๋ฉด 5
๋ฅผ ๋ฐํํด์ผ ํ๋ค.
Advance 1
: ์ด ๋ฌธ์ ์ ๋ํ ์ฌ๊ท์ ์๋ฃจ์
์ ์ฌ์ฉํ์ญ์์ค. Advance 2
: ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํ์ฌ ๊ตฌํํ์ญ์์ค.Example:
// Test
nthFibonacci(2); // => 1
nthFibonacci(3); // => 2
nthFibonacci(4); // => 3
// etc...
- See https://en.wikipedia.org/wiki/Fibonacci_number for more about a
Fibonnacci number
.
var nthFibonacci = function(n) {
// Your CODE
}
// Test
nthFibonacci(2); // => 1
nthFibonacci(3); // => 2
nthFibonacci(4); // => 3
Solution ๐
.
.
.
.
.
.
.
.
.
.
.
var nthFibonacci = function (n) {
if (n === 0) {
return 0;
}
if (n === 1) {
return 1;
}
return nthFibonacci(n - 1) + nthFibonacci(n - 2);
};
var nthFibonacci = function(n) {
// TODO: implement me!
let temp = [];
if (n === 0 || n === 1) {
return n;
} else if (n > 1) {
for (var i = 0; i < n; i++) {
if (i === 0) {
temp.push(0);
} else if (i === 1) {
temp.push(1);
} else {
temp.push(temp[i - 1] + temp[i - 2]);
}
}
}
return temp[n - 1] + temp[n - 2];
};