如何在不使用if的情况下编写Fibonacci Java程序

K M*_*ass 3 java

在不使用"if"的情况下在int Fibonacci(int n)中编写的代码是什么,就像他们在这里使用Java递归的Fibonacci序列一样?我试着写这个但是错了:因为在这个程序中,列表将是1 1 2 3 5 8而不是0 1 1 2 3 5 8

这是我试写的程序:

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

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

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

Usm*_*hin 11

计算斐波纳契数的纯公式:

public double getFibonacci(int n) {
    double f1 = Math.pow(((1 + Math.sqrt(5)) / 2.0), n);
    double f2 = Math.pow(((1 - Math.sqrt(5)) / 2.0), n);

    return Math.floor((f1 - f2) / Math.sqrt(5));
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助...

  • +1让我知道这个数学公式 (2认同)

Mar*_*nik 9

你的程序是完全正确的; 您需要更改的是print语句的位置:

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)

或者,打印g而不是f.