Java代码中的Fibonacci

Mar*_*arz 4 java algorithm

public class Fibonacci {
    public static long fib(int n) {
        if (n <= 1) return n;
        else return fib(n-1) + fib(n-2);
    }

    public static void main(String[] args) {
        int N = Integer.parseInt(args[0]);
        for (int i = 1; i <= N; i++)
            System.out.println(i + ": " + fib(i));
    }

}
Run Code Online (Sandbox Code Playgroud)

假设用户输入"java Fibonacci 7",结果将如下所示:1:1

2:1

3:2

4:3

5:5

6:8

7:13

我似乎完全混淆了它的工作原理.从数字3开始.当fib(i)方法通过3时,它不应该返回3,因为如果n = 3那么fib(n-1)/的总和是2 /和fib(n-2)/1 /是3.等等其他数字前进.

jan*_*sad 17

这是一个更简单的代码,可以生成像'0 1 1 2 3 ...'这样的Fibonacci序列.

public static void main (String[] args) {
    int f = 0;
    int g = 1;

    for (int i = 1; i <= 10; i++) {
        System.out.print(f + " ");
        f = f + g;
        g = f - g;
    } 

    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)