斐波纳奇数列(Fibonacci)

2019-10-06  本文已影响0人  好学人

斐波那契数列简介

斐波那契数列(Fibonacci sequence),又称黄金分割数列、指的是这样一个数列:1、1、2、3、5、8、13、21、34、……即从第3项起,后一项总是等于前两项之和。

在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)。

1. 使用数组实现Fibonacci数列

/**
 * 使用数组实现Fibonacci数列
 */
public void fibonacciArray(int n) {
    int[] fibonacci = new int[n];
    fibonacci[0] = 1;
    fibonacci[1] = 1;
    for (int i = 2; i < n; i++) {
        fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
    }
    System.out.println(Arrays.toString(fibonacci));
}

2. 使用栈实现Fibonacci数列

/**
 * 使用栈实现Fibonacci数列
 */
public void fibonacciStack(int n) {
    Stack<Integer> stack = new Stack<>();
    stack.push(1);
    stack.push(1);
    while (stack.size() < n) {
        Integer numTop1 = stack.pop();
        Integer numTop2 = stack.peek();
        stack.push(numTop1);
        stack.push(numTop1 + numTop2);
    }
    System.out.println(stack);
}

3. 使用递归求Fibonacci第n项的值

/**
 * 使用递归求Fibonacci第n项的值
 */
public int fibonacciRecursion(int n) {
    if (n == 1) return 1;
    if (n == 2) return 1;
    return fibonacciRecursion(n - 1) + fibonacciRecursion(n - 2);
}
上一篇下一篇

猜你喜欢

热点阅读