#include <stdio.h>
int fibonacci(int);
int main(int argc, char *argv[]){
int option;
printf("1- Calculate Fibonacci\n");
printf("2- Exit\n");
scanf("%d", &option);
if(option == 1){
int limit;
printf("Enter and integer: ");
scanf("%d", &limit);
printf("The Fibonacci sequence is : \n");
fibonacci(limit);
}else if(option == 2){
return 0;
}else{
printf("Please select your option : 1 or 2.\n");
}
return 0;
}
int fibonacci(int n){
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return (fibonacci(n-1) + fibonacci(n-2));
}
コンパイルした後持って
Cに書き込みに再帰フィボナッチを()しようとしている、と実行は私が
を得ました./a.out
1- Calculate Fibonacci
2- Exit
1
Enter and integer: 5
The Fibonacci sequence is :
I nこれまでに私の番号をプリントアウトする。
私が忘れたことに関するヒントはありますか?
私はフォークを使って多くのタイトルを見たので、フォークを使わずに作成しました。 – ihue
3階から窓から飛び出してくる人がたくさんいますが、あなたも飛びますか? ;-) –
注: 'return(fibonacci(n-1)+ fibonacci(n-2));'で、 'n'を入力すると、コードは' O(fibonacci(n)) '再帰呼び出しを行います。 'Fib(n)'と 'Fib(n-1)'を検索するヘルパー関数を作ることで、コードは 'n'回帰呼び出しを行うだけです。 'n = 40'の場合、これは約330,000,000コール対40です。あなたの' print'問題が修正されたら、n = 46を試してください - 長い時間がかかります。 – chux