C中的递归Fibonacci - 简单

时间:2017-03-02 14:06:26

标签: c

我正在尝试在c中写一个递归斐波那契()

我有

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

编译完成后,运行

./a.out 
1- Calculate Fibonacci
2- Exit
1
Enter and integer: 5
The Fibonacci sequence is : 

我从未打印过我的号码。

我忘了什么提示?

4 个答案:

答案 0 :(得分:3)

fibonacci(limit);即使您的代码理论上“有效”,也不会打印任何内容。

答案 1 :(得分:3)

替换:

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

fibonacci(limit);

printf("The Fibonacci sequence is : %d \n",fibonacci(limit));

int result;
result = fibonacci(limit);
printf("The Fibonacci sequence is : %d \n",result);

答案 2 :(得分:2)

您不会在fibonacci(int)方法中打印任何内容。

答案 3 :(得分:0)

fibonacci(limit);

此行不打印任何内容,您在某些变量中返回某些结果的答案或仅通过printf("%d", fibonacci(limit));

打印