2016-11-20 16 views
0

私は、Javaで絶対に初心者です。私は、fibonacciシーケンスに関するacm.libaryを使ってコードを書きたいと思っています。Fibonnaci Sequence

私にとっては非常にいいですが、私はシーケンスの最後の数字だけを印刷したいだけです。私はどのようにわからない。 ユーザタイプ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; 
} 
+1

多分それは役立ちます:fibonacci' 'のhttp://introcs.cs.princeton.edu/java/23recursion/Fibonacci.java.html – Philipp

+1

あなたの実装が間違っています。 – Maroun

+0

@Maroun:単にフィボナッチ数の定義を使って実装されていませんが、間違った数が計算されることはありません。実装が間違っている場合は、少なくとも1つの間違った番号が必要です。どれ? – mm759

答えて

0

あなたは、このことにより、ループの本体を置き換えることができます。

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

ありがとうございました!これはうまくいった。 –

1

は、このコードを試してみてください。

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()); 
    } 
} 
+0

素晴らしい!ありがとう!これはacm.libaryがなくてもうまくいきます。 –