文章目录java代码单元测试 java代码 package csdn.dreamzuora.recursion;/*** Title: 斐波那契额* Description:*斐波那契数列:0、1、1、2、3、5、8、13、21、34、55.....* f[n] = f[n-2] + f[n-1]* 优点:代码简单* 缺点:占用空间较大、如果递归太深,可能会发生栈溢出、可能会有重复计算 通过备忘录或递归的方式* 去优化(动态规划)* 时间复杂度:2的n次方* @version 1.0* @author: weijie* @date: 2020/10/16 11:53*/ public class Fibonacci {int[] a;int init = 2;public Fibonacci(int capacity) {a = new int[capacity];a[0] = 0;a[1] =1;}/*** 递归函数:入口 出口* @param n* @return*/public int f(int n){if (n < init){return a[n];}return f(n-2) + f(n - 1);}} 单元测试 package csdn.dreamzuora.recursion;import org.junit.Test; import org.junit.jupiter.api.Assertions;import static org.junit.Assert.*;/*** Title:* Description:** @version 1.0* @author: weijie* @date: 2020/10/16 12:01*/ public class FibonacciTest {Fibonacci fibonacci = new Fibonacci(100);@Testpublic void f() {//2 1Assertions.assertEquals(1, fibonacci.f(2));// 3 2Assertions.assertEquals(2, fibonacci.f(3));// 4 3Assertions.assertEquals(3, fibonacci.f(4));//10 55Assertions.assertEquals(55, fibonacci.f(10));} }