萌新求助,关于long long int。
求大神帮帮忙,这是我校ACM协会的一道题,具体要求如下:Description
Fibonacci数列:0,1,1,2,3,5,8,13,21,…
从0开始,后续的数具有这样的性质:当前的数是其前面两个数之和。编写一个函数计算第n个Fibonacci数,规定:Fibonacci(1)=1,fibonacci(2)=1。
Input
第一行1个整数t,表示有t组数据。以下t行,每行一个整数n。
Output
共t行,对于每个n,输出第n个Fibonacci数(结果不超过long long int的范围)。
Sample Input
2
3
5
Sample Output
2
5
Hint
long long int 的格式输出为:printf("%lld\n",a); ,还有要小心超时哦~
程序代码:
#include<stdio.h>
long long int Fibonacci(int n);
int main()
{ int t;
scanf("%d",&t);
while(t--)
{
int n;
long long int result;
scanf("%d",&n);
result = Fibonacci(n);
printf("Fibonacci(%d)=%lld\n",n,result);
}
return 0;
}
long long int Fibonacci(int n)
{
long long int result;
if(n==1&&n==1)
result=1;
else if(n==0)
result=0;
else
result = Fibonacci(n-1)+Fibonacci(n-2);
return result;
}
上边是我写的代码,可是一提交就显示Time Limit Exceeded,我不会用long long int ,求懂的大神指点一下小弟错在哪了,以及long long int的用法,还有就是我用的编程工具是codeblock。






代码看不懂,我只能用现有知识解决,我们刚学到函数。