Recursive Fibonacci memoization

后端 未结 14 1436
走了就别回头了
走了就别回头了 2020-11-30 02:47

I need some help with a program I\'m writing for my Programming II class at universtiy. The question asks that one calculates the Fibonacci sequence using recursion. One mus

14条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-30 03:22

    import java.util.HashMap;
    import java.util.Map;
    
    public class FibonacciSequence {
    
        public static int fibonacci(int n, Map memo) {
            if (n < 2) {
                return n;
            }
            if (!memo.containsKey(n)) {
                memo.put(n, fibonacci(n - 1, memo) + fibonacci(n - 2, memo));
            }
            return memo.get(n);
        }
    
        public static int fibonacci(int n, int[] memo) {
            if (n < 2) {
                return n;
            }
            if (memo[n - 1] != 0) {
                return memo[n - 1];
            }
            return memo[n - 1] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
        }
    
        public static void main(String[] s) {
            int n = 10;
    
            System.out.println("f(n) = " + fibonacci(n, new HashMap()));
            System.out.println("f(n) = " + fibonacci(n, new int[n]));
        }
    }
    

提交回复
热议问题