学习C++从娃娃抓起!记录下洛谷C++学习和备考过程中的题目,记录每一个瞬间。
附上汇总贴:洛谷刷题C++语言 | 汇总_热爱编程的通信人的博客-CSDN博客
【题目描述】
一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 m 开始爬到蜂房 n,m<n,有多少种爬行路线?(备注:题面有误,右上角应为 n−1)
【输入】
输入 m,n 的值
【输出】
爬行有多少种路线
【输入样例】
1 14
【输出样例】
377
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int n, m, a[5005]={1}, b[5005]={1}, c[5005]={1}, len=1;
void f(){
int jw=0;
for (int i=0; i<len; i++) {
c[i] = a[i]+b[i]+jw;
jw = c[i]/10;
c[i] = c[i]%10;
}
if (jw!=0) {
c[len] = jw;
len++;
}
for (int i=0; i<len; i++) {
a[i] = b[i];
b[i] = c[i];
}
}
int main()
{
cin >> m >> n;
for (int i=3; i<=n-m+1; i++) {
f();
}
for (int i=len-1; i>=0; i--) {
cout << c[i];
}
return 0;
}
【运行结果】
1 14
377