2016-06-29 13 views
-7

C言語で各用語を出力する再帰フィボナッチジェネレータを作成しようとしています。私はアルゴリズムを開発しました。私が印刷しようとすると、印刷するだけです。誰かが私が間違っている方向に向けることができますか?再帰的フィボナッチシーケンスを正しく表示できません。

#include <stdio.h> 
#include <stdlib.h> 

int Fibonacci (int n) 
{ 
    if (n = 0) 
     return 0; 
    if (n = 1) 
     return 1; 
    else 
     return (Fibonacci(n-1) + Fibonacci(n-2)); 
} 

int main() 
{ 
    int terms; 
    printf("Enter the number of terms: "); 
    scanf("%d", &terms); 


    printf("\nThe Fibonacci sequence containing %d terms is:\n", terms); 

    int i = 0; 
    for (i; i < terms; i++) 
    { 
     printf("%d ", Fibonacci(i)); 
    } 

    return 0; 
} 
+0

これは私にとって宿題のようです。私たちは宿題をしている人を助けることに反対しているわけではなく、宿題にタグを付けるだけで、あなたを導く方法を知っています。 –

+0

@DanielRudy [宿題]タグはもう使用されません。 – Xufox

+0

@Xufox私はそれを知らなかった。宿題の場合は、投稿に記載する必要があります。 –

答えて

1
if (n == 0) 

ない

if (n=0) 

慎重にあなたの構文を確認してください。

0

あなたはこのロジックを試すことができますが、単一の等号を使用するので、あなたが値を割り当てる代わりに、比較

if (n == 0) 
    return 0; 
if (n == 1) 
    return 1; 
... 
+1

(0 == n)がさらに良い場合。 ==の代わりに=を使用すると、コンパイルされません。 –

0

をやって:ここで

int Fibonacci (int n) 
{ 
    if(n < 2) 
     return n; 
    else 
     return Fibonacci(n- 1) + Fibonacci(n- 2); 
} 

n<2は時に数再帰が終了することを意味フィボナッチシリーズの最初の2つの用語が01であることがわかっているため、用語の一覧は< 2です。

関連する問題