3

Java recursive Fibonacci sequenceのように「if」を使用せずに int Fibonacci (int n) に書き込むコードは何ですか? 私はこれを書き込もうとしましたが、間違っています: このプログラムでは、リストは 0 1 1 2 3 5 8 ではなく 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();
    }
}
4

4 に答える 4

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));
}

お役に立てれば...

于 2012-10-07T19:33:05.843 に答える
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();
}

gまたは、代わりに印刷しfます。

于 2012-10-07T19:19:44.173 に答える
4

ここにifステートメントはありません:

public static void printFib(final int N) { 
    int f0 = 0; 
    int f1 = 1; 

    for (int i = 0; i < N; ++i) { 
        System.out.println(f0);   
        final int temp = f1; 
        f1 += f0; 
        f0 = temp; 
    } 
}
于 2012-10-07T19:08:37.640 に答える
2

これが私が従うものです。それは非常に短く、使用せずに行いますif

    public class ShortFibboCode{

    public static void main(String a[]) {
        int f = 0;
        int numUpto = 10; // number of series upto - change accordingly
        for(int t = 1; f < numUpto; t = f + (f = t))
            System.out.print((f + " ");
        }
}
于 2012-10-07T19:42:52.680 に答える