[当我尝试在C中使用递归来实现fibonacci序列时,我注意到在函数fibo中,如果我不使用某种if语句从函数中返回1,则程序崩溃。为什么这样做发生了吗?
#include<stdio.h>
int fibo(int);
int main(void){
int n, num;
scanf("%d", &n);
num = fibo(n);
printf("apo: %d", num);
return 0;
}
int fibo(int n){
if(n==0)
return 0;
else if(n==1)
return 1;
else if(n!=0){
n = fibo(n-1) + fibo(n-2);
return n;
}
}
/*FOR EXAMPLE if I leave the fuction like this, it doesn't work*/
int fibo(int n){
n = fibo(n-1) + fibo(n-2);
return n;
}
让我们采用绝对最简单的递归函数。