- 题目描述:
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
- 思路:
走上n级只有两种方法,一是从n-1迈一步,二是从n-2迈两步,所以走上n级步法是n-1和n-2步法的和,也就是斐波那契数列。
- 细节:
本题中,首先要注意在走台阶时已经站在了第一级上,其次M是小于40的,可以先用数组来储存这40组数据。
- 源代码:
#include<iostream> using namespace std; int a[40]; int main() { int n,m; a[1]=1; a[2]=2; for(int i=3;i<=40;i++) a[i]=a[i-1]+a[i-2]; cin>>n; for(int i=0;i<n;i++) { cin>>m; cout<<a[m-1]<<endl; } return 0; }