算法设计与分析--蜜蜂路线问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45435509/article/details/101074903

一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M<N,有多少种爬行路线?
在这里插入图片描述
算法分析:
f[]:爬到i位置的方法数
递归关系分析:
f[i]=f[i-1]+f[i-2]
递推边界:
f[m]=1(爬行起点方法数为0)
f[m+1]=1(爬行起点到达相邻的下一个蜂巢的爬行方法数为1)

#include <iostream> 
 #define SIZE 15001 
 using namespace std; 
 int f[SIZE] ;
 int main(){
     int n, m, i; 
     cin >> m >> n;   
     f[m]=1;
     f[m+1]=1;
     for (i = m+2; i <= n; i++)
         f[i] = f[i-1] + f[i-2];
     cout << f[n] << endl; 
     return 0;
  }

猜你喜欢

转载自blog.csdn.net/weixin_45435509/article/details/101074903