码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-03-09 17:56:00      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:font   ima   mamicode   std   floor   逆序输出   alt   参考   计算   

技术图片

 

技术图片

 

 逆序思维

当爬到第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;
} 

 

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

标签:font   ima   mamicode   std   floor   逆序输出   alt   参考   计算   

原文地址:https://www.cnblogs.com/Es-war/p/12449890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!