这个代码哪里错了啊,找不出来

img


用递归的方法求Fibonacci数列第n项的值,n从键盘输入。Fn = Fn-1 + Fn-2(n > 2),F1 = F2 = 1

函数调用,f(n) 改成 f(x)

  1. scanf中应该是&x?
  2. f(int n) 的实现逻辑也不正确。

#include <stdio.h>
#include <stdlib.h>
int f(int n);
int main()
{
    int x;

    scanf("%d",&x);
    printf("%d",f(x));
    return 0;
}
int f(int n)
{
    if(n==1||n==2)
        return 1;
    else
        return f(n-1)+f(n-2);
}