直接使用递推公式,会超时。
改用通项公式,可以通过,但内存消耗仍然有待改进。
#include <iostream>
#include <algorithm>
#include "string"
#include "vector"
#include "stack"
using namespace std;
//int climbStairs(int n)
//{
// if (n == 1||n==0)
// return 1;
// return climbStairs(n-1) + climbStairs(n-2);
//}
int climbStairs(int n)
{
return (1 / sqrt(5))* (pow((1 + sqrt(5)) / 2, n+1) - pow((1 - sqrt(5)) / 2, n+1));
}
int main()
{
cout << climbStairs(3);
system("pause");
return 0;
}