有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。
其中,蜂房的结构如下所示。
2 1 2 3 6
1 3
#include<math.h> #include<stdio.h> #include<iostream> #include<queue> #include<string.h> using namespace std; int a, b; long long int dp[55][55];//a-b的方法数 int main() { int t; for (int i = 1; i <= 50; i++) { dp[i][i] = 0; dp[i][i + 1] = 1; dp[i][i + 2] = 2; } for (int i = 1; i <= 50; i++) { for (int j = i+3; j <= 50; j++) { dp[i][j] = dp[i][j - 1] + dp[i][j - 2]; } } cin >> t; while (t--) { cin >> a >> b; cout << dp[a][b] << endl; } return 0; }