FibonacciNumber [斐波那契数]
# 介绍
斐波那契数(意大利语:Successione di Fibonacci),又译为菲波拿契数、菲波那西数、斐氏数、黄金分割数。所形成的数列称为斐波那契数列(意大利语:Successione di Fibonacci),又译为菲波拿契数列、菲波那西数列、斐氏数列、黄金分割数列。
在数学上,斐波那契数是以递归的方法来定义:
用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。首几个斐波那契数是:1、 1、 2、 3、 5、 8、 13、 21、 34、 55、 89、 144、 233、 377、 610、 987……
特别指出:0 不是第一项,而是第零项。
# 实现
# JavaScript
/**
* @function fibonacci
* @description Fibonacci is the sum of previous two fibonacci numbers.
* @param {Integer} N - The input integer
* @return {Integer} fibonacci of N.
* @see [Fibonacci_Numbers](https://en.wikipedia.org/wiki/Fibonacci_number)
*/
const fibonacci = (N) => {
if (!Number.isInteger(N)) {
throw new TypeError('Input should be integer')
}
// memoize the last two numbers
let firstNumber = 0
let secondNumber = 1
for (let i = 1; i < N; i++) {
const sumOfNumbers = firstNumber + secondNumber
// update last two numbers
firstNumber = secondNumber
secondNumber = sumOfNumbers
}
return N ? secondNumber : firstNumber
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 参考
编辑 (opens new window)
上次更新: 2022/10/25, 20:46:09