Problem-J

概述:有个台阶,每次只能上一阶或者两阶,问要到某一台阶,共有多少种走法。

思路:动态规划的问题,用斐波那契数列解题,每上一层台阶,从相邻的下台阶只有一种方式,但是上下台阶有不同方式,然后相隔的下台阶上这个台阶也有一种方式,同时上相隔的台阶有不同的方式,所以相加就是上这个台阶的方式,斐波那契数列。

感想:下午写完的题目好像忘记写感想了。。这两道题目都是斐波那契数列的题目,推理找出规律就简单了,所以并不难。

#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;
}


你可能感兴趣的:(Problem-J)