题目描述
楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。

编一个程序,计算共有多少种不同的走法。

输入格式
一个数字,楼梯数。

输出格式
输出走的方式总数。

输入样例

4

输出样例

5

说明/提示
对于 60%60% 的数据,N≤50;
对于 100%100% 的数据,1≤N≤5000
算法分析:
每次都只能上一阶或者两阶,所以我们可以设每阶梯拥有的方法为f(n)。我们第一步只能走一阶或者两阶梯。

  1. 第一步走了一阶梯时,剩下的n-1阶梯,有f(n-1)种方法。
  2. 第一步走了两阶梯时,剩下的n-2阶梯,有f(n-2)种方法。
  3. 总方法数即为f(n)=f(n-1)+f(n-2)。即菲波那切数列问题
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
int n,len=1,f[5003][5003];//f[k][i]--第k阶台阶所对应的走法数
void hp(int k)//高精度加法,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]=f[k][i]%10;if(f[k][len+1])len++;}
}
int main()
{int i;scanf("%d",&n);f[1][1]=1; f[2][1]=2;         //初始化 for(i=3;i<=n;i++)              //从3开始避免越界 hp(i);                         for(i=len;i>=1;i--)             //逆序输出 printf("%d",f[n][i]);return 0;
}

数楼梯--高精度递推、菲波那切数列相关推荐

  1. php菲波那切数列,php实现菲波那切数列和杨辉三角

    1.递归  显示斐波那契数列 function recursion($num){ //判断是否小于0 if($num<0){ return -1; } if($num==1){ return 0 ...

  2. 008 -菲波那切数列

    对第n位菲波那切数列的值进行求解 菲波那切数列 (1)递归方法实现 //递归实现斐波那契数列public static int calculateOne(int num) {if(num==0)ret ...

  3. 菲波那切数列 java_兔子的繁殖问题即菲波那切数列 java实现

    问题:兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来.初始有一对小兔子,假设所有兔子都不死,那么一年以后可以繁殖多少对兔子?思路: 每月的兔子总数:1.1.2.3.5.8.13.- ...

  4. 求菲波那切数列数列第n项三种方法小结

    菲波那切数列数列的应用场景还是比较多的,比如可以在考试的时候考你递归啊,早上碰到的一道题就是这样,骄傲地写下递归方程,结果TLE了,然后旁边的大神给我说了一个叫滚动数组的东西...题目是这样的You ...

  5. 菲波那切数列(递归非递归)

    面试经常遇到有人问菲波那切数列,并且问题也越来越刁钻,递归,非递归,尾递归等各种实现方式不一而足,已经不是最开始那个正经的斐波那契了.弄来弄去,还是要理解他的实现原理,以不变应万变. 数列形式:1,1 ...

  6. 菲波那切数列案例演示(递归方法)

    /** * 功能:菲波那切数列案例演示(递归方法) * 详情:斐波那契数,亦称之为斐波那契数列(意大利语: * Successione di Fibonacci),又称黄金分割数列.费 * 波那西数列 ...

  7. Python多种方法生成菲波那切数列

    文章目录 一.顺序输出 二.利用递归函数实现 三.循环 四.利用列表实现 五.利用reduce实现 六.利用生成器实现 七.利用魔术方法实现 记录多种方法生成菲波那切数列 一.顺序输出 代码如下: # ...

  8. Python之菲波那切数列

    1.菲波那切数列指的是这样一个数列:1.1.2.3.5.8.13.21.34....求第n项. def fibonacci(n):if n == 1:return 1if n == 2:return ...

  9. python函数-返回菲波那切数列for,range,append

    #返回菲波那切数列的列表 def fibs(num):     fibs=[0,1]     for i in range(num):         fibs.append(fibs[-2]+fib ...

最新文章

  1. bootstrap:按钮,下拉菜单
  2. SBO-COMMON库中查各个表的大小的SQL语句
  3. sougou输入法安装
  4. Java基础- super 和 this 解析
  5. JVM内存管理------JAVA语言的内存管理概述
  6. qt android文件读写文件,qt android 开发之写入xml配置文件篇
  7. 4. PHP递增/递减运算符
  8. sql as关键字_SQL AS关键字概述和示例
  9. Socket基础知识分享
  10. uva 11021 Tribles
  11. [蓝桥杯历届试题] 汉诺塔计数
  12. 今天没发程序!HOHO!!!
  13. 兄弟连php留言,LAMP兄弟连PHP课程学习笔记 第五天 循环语句
  14. IDEA中一直Update indexing问题
  15. 有关Bert模型的理解
  16. 英伟达 NVIDIA-Tesla-P40 GPU 直透
  17. 5分钟介绍各种类型的人工智能技术
  18. 2017电影经典语句
  19. 二进制转十进制C++
  20. linux dev ram,fdisk -l 显示 16个ram磁盘/dev/ram0... /ram15

热门文章

  1. Day3 确知信号的类型、频域性质和时域性质
  2. 百度云BBC服务器搭建宝塔面板
  3. MySQL在DBeaver上的使用(新手详细教程
  4. HTC G12刷ROM的详细过程
  5. Angular学习(3)- 双向梆定
  6. MES系统在人员工时管理中的应用
  7. 无意中找到的一篇关于面试的文章,感觉写的很好!
  8. android-----模拟器加载自己编译的内核(适用于驱动练习)
  9. react-diagram, antlr4 可视化编程网页应用搭建(一)
  10. SpringBoot如何读取配置文件(@Value/@ConfigurationProperties/Environment)