私は CSE の学生で、プログラミング コンテストの準備をしています。現在、フィボナッチ数列に取り組んでいます。正の整数を含む約数キロバイトのサイズの入力ファイルがあります。入力形式は次のようになります
3 5 6 7 8 0
ゼロはファイルの終わりを意味します。出力は好きなはずです
2
5
8
13
21
私のコードは
#include<stdio.h>
int fibonacci(int n) {
if (n==1 || n==2)
return 1;
else
return fibonacci(n-1) +fibonacci(n-2);
}
int main() {
int z;
FILE * fp;
fp = fopen ("input.txt","r");
while(fscanf(fp,"%d", &z) && z)
printf("%d \n",fibonacci(z));
return 0;
}
コードはサンプル入力に対しては正常に機能し、正確な結果を提供しますが、実際の入力セットでは制限時間よりも時間がかかっているという問題があります。誰でも私を助けることができますか?