Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2cf398a

Browse files
authored
Merge branch 'TheAlgorithms:master' into patch-1
2 parents dd9481e + 8bf29fe commit 2cf398a

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

‎Dynamic-Programming/FibonacciNumber.js

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
11
/**
2-
* @function Fibonacci
2+
* @function fibonacci
33
* @description Fibonacci is the sum of previous two fibonacci numbers.
44
* @param {Integer} N - The input integer
55
* @return {Integer} fibonacci of N.
66
* @see [Fibonacci_Numbers](https://en.wikipedia.org/wiki/Fibonacci_number)
77
*/
88
const fibonacci = (N) => {
9-
// creating array to store values
10-
const memo = new Array(N + 1)
11-
memo[0] = 0
12-
memo[1] = 1
13-
for (let i = 2; i <= N; i++) {
14-
memo[i] = memo[i - 1] + memo[i - 2]
9+
if (!Number.isInteger(N)) {
10+
throw new TypeError('Input should be integer')
1511
}
16-
return memo[N]
12+
13+
// memoize the last two numbers
14+
let firstNumber = 0
15+
let secondNumber = 1
16+
17+
for (let i = 1; i < N; i++) {
18+
const sumOfNumbers = firstNumber + secondNumber
19+
// update last two numbers
20+
firstNumber = secondNumber
21+
secondNumber = sumOfNumbers
22+
}
23+
24+
return N ? secondNumber : firstNumber
1725
}
1826

1927
export { fibonacci }

‎Dynamic-Programming/tests/FibonacciNumber.test.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { fibonacci } from '../FibonacciNumber'
22

3-
describe('FibonacciNumber', () => {
3+
describe('Testing FibonacciNumber', () => {
4+
it('Testing for invalid type', () => {
5+
expect(() => fibonacci('0')).toThrowError()
6+
expect(() => fibonacci('12')).toThrowError()
7+
expect(() => fibonacci(true)).toThrowError()
8+
})
9+
410
it('fibonacci of 0', () => {
511
expect(fibonacci(0)).toBe(0)
612
})

‎Maths/AverageMean.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @description This script will find the mean value of a array of numbers.
44
* @param {Integer[]} nums - Array of integer
55
* @return {Integer} - mean of nums.
6-
* @see [Mean](hhttps://en.wikipedia.org/wiki/Mean)
6+
* @see [Mean](https://en.wikipedia.org/wiki/Mean)
77
* @example mean([1, 2, 4, 5]) = 3
88
* @example mean([10, 40, 100, 20]) = 42.5
99
*/

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /