概述:有个台阶,每次只能上一阶或者两阶,问要到某一台阶,共有多少种走法。
思路:动态规划的问题,用斐波那契数列解题,每上一层台阶,从相邻的下台阶只有一种方式,但是上下台阶有不同方式,然后相隔的下台阶上这个台阶也有一种方式,同时上相隔的台阶有不同的方式,所以相加就是上这个台阶的方式,斐波那契数列。
感想:下午写完的题目好像忘记写感想了。。这两道题目都是斐波那契数列的题目,推理找出规律就简单了,所以并不难。
#include<iostream> #include<fstream> using namespace std; int main() { //ifstream cin("in.txt"); int N; cin >> N; while (N--) { int M; cin >> M; int fl[41] = { 0 }; fl[1] = 1; fl[2] = 1; for (int i = 3;i <= 40;i++) fl[i] = fl[i - 1] + fl[i - 2]; cout << fl[M] << endl; } return 0; }