mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-08 10:15:51 +08:00
@ -0,0 +1,30 @@
|
|||||||
|
package com.thealgorithms.dynamicprogramming;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@code Tribonacci} class provides a method to compute the n-th number in the Tribonacci sequence.
|
||||||
|
* N-th Tribonacci Number - https://leetcode.com/problems/n-th-tribonacci-number/description/
|
||||||
|
*/
|
||||||
|
public class Tribonacci {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computes the n-th Tribonacci number.
|
||||||
|
*
|
||||||
|
* @param n the index of the Tribonacci number to compute
|
||||||
|
* @return the n-th Tribonacci number
|
||||||
|
*/
|
||||||
|
public static int compute(int n) {
|
||||||
|
if (n == 0) return 0;
|
||||||
|
if (n == 1 || n == 2) return 1;
|
||||||
|
|
||||||
|
int first = 0, second = 1, third = 1;
|
||||||
|
|
||||||
|
for (int i = 3; i <= n; i++) {
|
||||||
|
int next = first + second + third;
|
||||||
|
first = second;
|
||||||
|
second = third;
|
||||||
|
third = next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return third;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package com.thealgorithms.dynamicprogramming;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test class for {@code Tribonacci}.
|
||||||
|
*/
|
||||||
|
public class TribonacciTest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests the Tribonacci computation for a set of known values.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testKnownValues() {
|
||||||
|
assertEquals(0, Tribonacci.compute(0), "The 0th Tribonacci should be 0.");
|
||||||
|
assertEquals(1, Tribonacci.compute(1), "The 1st Tribonacci should be 1.");
|
||||||
|
assertEquals(1, Tribonacci.compute(2), "The 2nd Tribonacci should be 1.");
|
||||||
|
assertEquals(2, Tribonacci.compute(3), "The 3rd Tribonacci should be 2.");
|
||||||
|
assertEquals(4, Tribonacci.compute(4), "The 4th Tribonacci should be 4.");
|
||||||
|
assertEquals(7, Tribonacci.compute(5), "The 5th Tribonacci should be 7.");
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user