- #include<stdio.h>
-
#include<stdlib.h>
-
int f(int n)
-
{
-
if(n==0)
-
return 0;
-
else
-
if(n==1)
-
return 1;
-
else
-
return f(n-1)+f(n-2);
-
}
-
int main()
-
{
-
-
printf("answer:%d\n",f(3));
-
system("pause");
-
return 0;
-
}
程序要想识别f(n)这个函数,必须写出这个函数。
然后,
f(0)=0,这样的写法,在f(n)函数体中,和main中,都不被接受,这就不是在f(n)中,f不被编译器接受的问题。
而是这样写有语法问题。
因为f(0)的结果,是f(n)的函数体计算出来的,不是直接赋值得到的,如果要赋值的话,也要在函数体内实现才行。
于是,就有这两行代码:
- if(n==0)
- return 0;
- else
- if(n==1)
- return 1;