题目描述
一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,1≤M<N≤100,有多少种爬行路线?
输入
输入 M,N 的值。 (1≤M<N≤100)
输出
爬行有多少种路线。
样例
输入
1 14
输出
377
代码
#include <bits/stdc++.h>
using namespace std;
int n,m,t;
bool pd = 0;
int a[1000][1000];
int main(){
cin >> m >> n;
t = n - m;
a[0][1] = 0;
a[1][1] = 1;
a[2][1] = 2;
for(int i = 3;i <= t;i++){
for(int j = 1;j < 600;j++)
a[i][j] = a[i - 1][j] + a[i - 2][j];
for(int j = 1;j < 600;j++){
while(a[i][j] > 9){
a[i][j + 1]++;
a[i][j] -= 10;
}
}
}
for(int i = 600;i > 1;i--){
if(!pd && a[t][i] == 0){
continue;
}
pd = 1;
cout << a[t][i];
}
cout << a[t][1];
return 0;
}