这道题要注意用__int64 ,并且用I64d 输入,要不然AC不过。
斐波那契数列类的题目很常见,但也不难,一般用数组处理而不要用函数递归处理。递归处理很容易超时。
#include<iostream>
using namespace std;
int main(){
__int64 n,m[50];//刚开始时是用int型,AC不掉。改成__int64 就AC掉了
int a,b,i,tmp;
scanf("%I64d",&n);
while(n--){
scanf("%d%d",&a,&b);
tmp=b-a;
if(tmp==1||tmp==2)
printf("1\n");
else{
m[1]=1; m[2]=1;
for(i=3;i<=tmp+1;i++)
m[i]=m[i-1]+m[i-2];
printf("%I64d\n",m[i-1]);
}
}
return 0;
}