1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int T,a,b,i; 6 scanf("%d",&T); 7 while(T--) 8 { 9 scanf("%d %d",&a,&b); 10 __int64 f0=1,f1=1,f; 11 if(b-a==0||b-a==1) 12 printf("1\n"); 13 else 14 { 15 for(i=2;i<=b-a;i++) 16 { 17 f=f0+f1; 18 f0=f1; 19 f1=f; 20 } 21 printf("%I64d\n",f); 22 } 23 } 24 return 0; 25 }
和超级楼梯差不多,是一个变形的斐波那契数列,还是得定义64位的,确保结果不溢出!