爬楼梯问题,一共有n阶台阶,每次你可以走1或者2个台阶,到达顶端一共有多少种不同的走法?

            典型的动态规划问题,和斐波那契问题的区别就是初值不同了。

#include "stdafx.h"
#include 
#include 
using namespace std;

int climbstairs(int n)
{
	int a[10001]={0};
	int i;
	a[0]=0;
	a[1]=1;
	a[2]=2;
	if(n>10000)
		return 0;
	for(i=3;i<=n;++i)
	{
		a[i]=a[i-1]+a[i-2];
	}
	return a[n];
}
int _tmain(int argc, _TCHAR* argv[])
{
	cout<


你可能感兴趣的:(算法)