1.简单题意
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
2.解题思路
这是一道经典的动态规划题,方程是f(1)=1,f(i)=f(i-1)+f(i-2),其实就是斐波那次数列的一种,求得时候注意层数和楼梯数的关系。
3.感想
复杂的题目可能解答方法并不难
4.AC代码
#include<iostream>
using namespace std;
int main()
{
int add(int n);
int x,m,re=0;
cin>>x;
for(int i=0;i<x;i++)
{
cin>>m;
re=add(m-1);
cout<<re<<endl;
}
return 0;
}
int add(int n)
{
int a[41];
a[0]=1;a[1]=1;
for(int i=2;i<41;i++)
{
a[i]=a[i-1]+a[i-2];
}
return a[n];
}