[問題] 遞迴函式的問題
小弟我是初學者,
跟著書本練習時,
遇到這問題一直想不透
#include<stdio.h>
#include<stdlib.h>
long fibonacci(long);
int main(){
long n, ans;
printf("Enter a number(n>=0): ");
scanf("%1d",&n);
if(n<0){
printf("Number must be>0\n");
}else{
ans = fibonacci(n);
printf("fibonacci(%1d) = %1d\n",n,ans);
}
system("pause");
return 0;
}
long fibonacci(long n){
int a;
if(n==0){
return 0;
}else if(n==1){
return 1;
}else{
a = fibonacci(n-1)+fibonacci(n-2);
printf("%d\n",a);
return a;
}
}
我輸入4時,
1
2
1
3
fibonacci(4) = 3
為何會是這樣呢???
感謝大家替我解答!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.194.56
推
03/11 00:25, , 1F
03/11 00:25, 1F
→
03/11 00:26, , 2F
03/11 00:26, 2F
→
03/11 00:28, , 3F
03/11 00:28, 3F
推
03/11 00:38, , 4F
03/11 00:38, 4F
→
03/11 06:32, , 5F
03/11 06:32, 5F
推
03/11 15:57, , 6F
03/11 15:57, 6F
→
03/11 23:33, , 7F
03/11 23:33, 7F
→
03/11 23:34, , 8F
03/11 23:34, 8F
→
03/11 23:34, , 9F
03/11 23:34, 9F
→
03/11 23:38, , 10F
03/11 23:38, 10F
→
03/13 11:52, , 11F
03/13 11:52, 11F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章