利用while编写斐波那契数列

麻烦请教如何仅使用2个储存变量利用while编写斐波那契数列 希望大家可以将不好理解的地方给予解释 我很多基础的东西都忘记了 麻烦大家指点一下

img

img

图片上的问题是fb没有给初始值,所以编译器会报错。两个变量计算第n个斐波那契数的逻辑如下:
second = first+second;first = second - first;比如前三个:1,1,2。
首先first=1,second=1是,计算第三个数的过程:

  1. 将first+second 赋值新的second,此时second相当于向后移动一位,second = 2;
  2. second此时前一个数值等于当前second-first=2-1=1;将此值赋值于first;
    此后相当于first,second各向后推一位。循环此步骤,就能求解第n个值。

public static int fb(int n) {
    int i = 0, first = 0, second = 1;
    while (i < n-1) {
        second = first+second;
        first = second - first;
        i++;
    }
    return second;
}

public static void main(String[] args) {
    System.out.println(fb(6));
}