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