一只小蜜蜂...
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 52783 Accepted Submission(s): 19141
其中,蜂房的结构如下所示。
![](https://i-blog.csdnimg.cn/blog_migrate/db4917bb4b1bd4e9ccc285a9597f8e31.jpeg)
2 1 2 3 6
1 3
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#define max 1000
//斐波那契数列的进阶应用
long long fbnq(int a,int b){
long long cnt[55];
cnt[1]=1;
cnt[2]=2;
int n=b-a;
if(n>2){
for(int i=3;i<=n;i++)
cnt[i]=cnt[i-1]+cnt[i-2];
}
//输出的结果和a,b的具体值没有直接关系,只与b-a值有关
//(3,7)和(1,5)的结果是一样的,都可以看成是a=1开始
return cnt[n];
}
int main(){
int n;
scanf("%d",&n);
int a,b;
while(n--){
scanf("%d %d",&a,&b);
printf("%lld\n",fbnq(a,b));
}
return 0;
}
注意:数组最大是到第51位,斐波那契数列的第20个就已经超出了 int 型整数了,为了防止边界溢出,把数组定义成64位的 long long 型的 或则 _Int64 位的。输出格式为"%lld"