有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。
其中,蜂房的结构如下所示。
2 1 2 3 6
1 3
在第n格里蜜蜂可以爬到第n+1,n+2格子里,即f(n)=f(n-1)+f(n-2) 因此,这又是一个斐波那契数
#include<stdio.h>
int main()
{
long long dp[51];
int a,b,z,i;
scanf("%d",&z);
dp[1]=1;
dp[2]=2;
for (i=3;i<=50;++i)
{
dp[i]=dp[i-2]+dp[i-1];
}
while(z--)
{
scanf("%d%d",&a,&b);
printf("%lld\n",dp[b-a]);
}
return 0;
}
本文介绍了一种使用斐波那契数列计算蜜蜂从蜂房a爬行到蜂房b的可能路径数量的方法。通过预计算斐波那契数列并存储在数组中,能够快速得出任意两点间的路径数。
1803

被折叠的 条评论
为什么被折叠?



