数楼梯(斐波那契数列+高精度)

Posted es-war

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数楼梯(斐波那契数列+高精度)相关的知识,希望对你有一定的参考价值。

技术图片

 

技术图片

 

 逆序思维

当爬到第K级台阶时,上一步只有两种可能,一种是位于K-1,一种是位于K-2

参考https://www.luogu.com.cn/blog/user7117/solution-p1255

#include<iostream>
#include<string>
using namespace std;
 
const int Max = 5050;
int n, len = 1, f[Max][Max];
void floor(int k)
{
    int i;
    for (i = 1; i <= len; i ++)
      f[k][i] = f[k - 1][i] + f[k - 2][i];  //套用计算公式 
    for (i = 1; i <= len; i ++)
      if (f[k][i] >= 10)  //进位 
      {
          f[k][i + 1] += f[k][i] / 10;
          f[k][i] %= 10;
          if (f[k][len + 1])
            len ++;
      }
}

int main()
{
    int i;
    cin >> n;
    f[1][1] = 1;  //初始化 
    f[2][1] = 2;
    cin >> n;
    for (i = 3; i <= n; i ++)  //从3开始避免越界 
      floor(i);
    for (i = len; i > 0; i --)  //逆序输出 
      cout << f[n][i];
    return 0;
} 

 

以上是关于数楼梯(斐波那契数列+高精度)的主要内容,如果未能解决你的问题,请参考以下文章

前端算法必知必会之动态规划-爬楼梯(斐波那契数列)

Hdu2041 超级楼梯 (斐波那契数列)

超级楼梯-斐波那契数列的运用

数楼梯

[每日一题2020.06.14]leetcode #70 爬楼梯 斐波那契数列 记忆化搜索 递推通项公式

70. 爬梯子问题(斐波那契数列)Climbing Stairs