PTA 运行超时 求帮解。。

7-3 C程序设计实验3-1:递归法求解斐波那契数列

题目描述。已知斐波那契数列公式如下:
F(n)=F(n−1)+F(n−2),(n>=3);
F(1)=1;F(2)=1。
用递归的方法求解该数列的第n项。

输入格式:
输入一个正整数n(1<=n<=50)。

输出格式:
输出该正整数n对应的斐波那契数列的F(n)。

输入样例:
2
输出样例:
F(2)=1
输入样例:
3
输出样例:
F(3)=2
输入样例:
-7
输出样例:
Wrong Input.
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

我的代码如下:
#include
int fei(int n)
{
int f;
if(n==1||n==2)
f=1;

else if(n>=3)
    f=fei(n-1)+fei(n-2);

return (f);

}

int main()
{
int m,f;
scanf("%d",&m);
f=fei(m);
if(m<=0)
printf("Wrong Input.");
else
printf("F(%d)=%d",m,f);

return 0;

}

但是PTA提交的答案说“运行超时”
求帮解,谢谢。

int fei(int n)
{
  if(n==1||n==2)
    return 1;
  return fei(n-1)+fei(n-2);
}

需要判断50以上的数字,同样提示输入错误。