斐波那契数列为啥在洛谷上过不了?
#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;
}
代码在整数范围内(整数范围只能表达到第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;
}