这串代码为啥洛谷上不行?

斐波那契数列为啥在洛谷上过不了?
#include<stdio.h>
int fib(int n)
{
int a=1;
int b=1;
int c=1;
while(n>2)
{
c=a+b;
a=b;
b=c;
n--;
}
return c;
}
int main()
{
int i=0;
scanf("%d",&i);
int ret=fib(i);
printf("%d",ret);
return 0;
}

img


题目在后面

代码在整数范围内(整数范围只能表达到第46个,再后面就超范围溢出了)是正确的,不知道题目要求是什么。

#include<stdio.h>
int fib(int n)
{
    int a = 1;
    int b = 1;
    int c = 1;
    while (n > 2)
    {
        c = a + b;
        a = b;
        b = c;
        n--;
    }
    return c;
}
int main()
{
    int i = 0;
    scanf("%d", &i);
    int ret = fib(i);
    printf("%d", ret);
    return 0;
}