C-plainsimple中的递归Fibonacci

C-plainsimple中的递归Fibonacci,c,C,我正在尝试用c编写一个递归的fibonacci() 我有 #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 l

我正在尝试用c编写一个递归的fibonacci()

我有

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

我从不把我的号码打印出来


我忘了什么,有什么线索吗

斐波那契(极限)不会打印任何内容,即使您的代码理论上“工作正常”。

fibonacci(限制)不会打印任何内容,即使您的代码在理论上“工作”。

您不会使用斐波那契(int)方法打印任何内容

在斐波那契(int)方法中不打印任何内容

替换:

printf("The Fibonacci sequence is : \n");

fibonacci(limit);

替换:

printf("The Fibonacci sequence is : \n");

fibonacci(limit);

此行没有打印任何内容,您可以在某个变量的某个结果中返回您的答案,或者通过
printf(“%d”,fibonacci(limit)),简单地打印它


此行没有打印任何内容,您可以在某个变量的某个结果中返回您的答案,或者通过
printf(“%d”,fibonacci(limit)),简单地打印它

谢谢<代码>printf(“%d”,斐波那契(极限))解决了我的问题。谢谢<代码>printf(“%d”,斐波那契(极限))解决了我的问题。我看到很多标题使用了fork,所以我没有使用fork创建了一个标题。因此,如果你看到很多人从三楼跳出窗外,你也会跳?;-)注:带
return(fibonacci(n-1)+fibonacci(n-2)),并输入
n
,代码将进行关于
O(fibonacci(n))
的递归调用。通过创建一个helper函数来检索
Fib(n)
Fib(n-1)
,代码只需要进行大约
n
递归调用。如果
n=40
,这大约是330000000次呼叫,而不是40次。一旦你的
print
问题得到解决,请尝试n=46-这需要很长时间。我看到很多标题使用fork,所以我创建了一个标题而没有使用fork。因此,如果你看到很多人从三楼跳出窗外,你也会跳?;-)注:带
return(fibonacci(n-1)+fibonacci(n-2)),并输入
n
,代码将进行关于
O(fibonacci(n))
的递归调用。通过创建一个helper函数来检索
Fib(n)
Fib(n-1)
,代码只需要进行大约
n
递归调用。如果
n=40
,这大约是330000000次呼叫,而不是40次。一旦您的
打印问题得到解决,请尝试n=46-需要很长时间。
printf("The Fibonacci sequence is : %d \n",fibonacci(limit));
int result;
result = fibonacci(limit);
printf("The Fibonacci sequence is : %d \n",result);
fibonacci(limit);