mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-07 02:05:08 +08:00
merge: Add TribonacciNumber in dp (#839)
This commit is contained in:
20
Dynamic-Programming/TribonacciNumber.js
Normal file
20
Dynamic-Programming/TribonacciNumber.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* @function Tribonacci
|
||||||
|
* @description Tribonacci is the sum of previous three tribonacci numbers.
|
||||||
|
* @param {Integer} n - The input integer
|
||||||
|
* @return {Integer} tribonacci of n.
|
||||||
|
* @see [Tribonacci_Numbers](https://www.geeksforgeeks.org/tribonacci-numbers/)
|
||||||
|
*/
|
||||||
|
const tribonacci = (n) => {
|
||||||
|
// creating array to store previous tribonacci numbers
|
||||||
|
const dp = new Array(n + 1)
|
||||||
|
dp[0] = 0
|
||||||
|
dp[1] = 1
|
||||||
|
dp[2] = 1
|
||||||
|
for (let i = 3; i <= n; i++) {
|
||||||
|
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]
|
||||||
|
}
|
||||||
|
return dp[n]
|
||||||
|
}
|
||||||
|
|
||||||
|
export { tribonacci }
|
23
Dynamic-Programming/tests/TribonacciNumber.test.js
Normal file
23
Dynamic-Programming/tests/TribonacciNumber.test.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { tribonacci } from '../TribonacciNumber'
|
||||||
|
|
||||||
|
describe('TribonacciNumber', () => {
|
||||||
|
it('tribonacci of 0', () => {
|
||||||
|
expect(tribonacci(0)).toBe(0)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('tribonacci of 1', () => {
|
||||||
|
expect(tribonacci(1)).toBe(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('tribonacci of 2', () => {
|
||||||
|
expect(tribonacci(2)).toBe(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('tribonacci of 10', () => {
|
||||||
|
expect(tribonacci(10)).toBe(149)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('tribonacci of 25', () => {
|
||||||
|
expect(tribonacci(25)).toBe(1389537)
|
||||||
|
})
|
||||||
|
})
|
Reference in New Issue
Block a user