斐波那契数列

Fibonnaci Sequence

我绝对是 java 的初学者,我想用 acm.libary 编写一个关于斐波那契数列的代码。

结果对我来说非常好,但我只想打印序列的最后一个数字。我不知道怎么办。 如果用户输入 n = 5,则结果需要为 8。 如果用户输入 n = 8,则结果需要为 21。 在我的程序中它是最后一个数字,但程序也会打印所有之前的数字。

希望你能理解我:D

提前致谢!

 int a = 1;
 int b = 0;

public void run() {
    int n = readInt ("n: ");
    for(int i = 1; i <= n; i++) {
        println (fibonacci (n));
    }
}

private int fibonacci(int n) {
    int c = (a) + (b);
    a = b;
    b = c;
    return c;
}

你可以这样替换循环体:

if (i == n) {
  println (fibonacci (n));
} else {
  fibonacci (n);
} 

试试这个代码。

import java.util.Scanner;
public class Test {
    int a = 1;
     int b = 0;

    public int run() {
        @SuppressWarnings("resource")
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int value =0;
        for(int i = 1; i <= n; i++) {
            value =  fibonacci (n);
        }
        return value;
    }

    private int fibonacci(int n) {
        int c = (a) + (b);
        a = b;
        b = c;
        return c;
    }

    public static void main (String arg[])
    {
        Test t = new Test();
        System.out.println(t.run());
    }
}