Nig*_*ker -1 c function switch-statement
谁能解释一下这段代码?我无法理解为什么此代码中的打印值为8
有人可以向我解释
#include <stdio.h>
int f(int i){
switch (i){
case 0 :
return 0;
case 1:
case 2:
return 1;
default:
return f(i-2)+f(i-1);
}
}
void main(void) {
printf("%d", f(6));
}
Run Code Online (Sandbox Code Playgroud)
小智 6
也许您只需要在调试运行中逐步执行代码,但这就是您拥有的原因 f(6)=8
step1: f(6)
step2: f(6-2) +f(6-1)
step3: f(4-2)+f(4-1) +f(5-2) +f(5-1)
step4: f(2) +f(3-2)+f(3-1)+f(3-2)+f(3-1)+f(4-2)+f(4-1)
step5: 1 +1 +1 +1 +1 +1 +f(3-2)+f(3-1)
step6: 1 +1 +1 +1 +1 +1 +1 +1
final: 8
Run Code Online (Sandbox Code Playgroud)