zoukankan      html  css  js  c++  java
  • P1255 数楼梯

    题目描述

    楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。

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

    输入格式

    一个数字,楼梯数。

    输出格式

    输出走的方式总数。

    输入输出样例

       输入

    4

    输出
    5

    说明/提示

    • 对于 60%的数据 N<=50
    • 对于 100%的数据 N<=5000

    题目分析

    对于N = 1,和N = 0的时候,我们可以明显的得到 f(0) = 0,f(1) = 1,也就是楼梯层数为1和0只有一种方式

    而对于更多的楼梯阶数,要么一次走一格,要么一次走两格,那我每次的走法就等于=上一格的方案数+上上格的方案数咯,这就推出了方程:

    这就是著名的斐波那契数列的一个例子,但是想到这一步你只能拿到60分,我们还要考虑到int 和long类型可能会越界导致代码提交不通过

    这里呢我写的是java版的代码,java自带大数运算,所以可以偷一波懒了,其他语言的可能就要解决大整数的问题了

    代码

    public class Main {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int n=sc.nextInt();
            if(n==0) { System.out.print(0);return; }
            if(n==1) { System.out.print(1);return; }
            BigInteger a=BigInteger.ONE,b=BigInteger.ONE,c=BigInteger.ZERO;
            for(int i=2;i<=n;++i) { c=a.add(b); a=b; b=c; }
            System.out.print(c);
        }
    }
    如果觉得这篇文章有帮助的话,希望可以在右边点个赞,关注一下下也是可以的
  • 相关阅读:
    JavaScript函数式编程——柯里化
    JavaScript使用纯函数避免bug
    ES6入门五:箭头函数、函数与ES6新语法
    图解--二分查找树
    电梯引发的思考
    VIM
    vs 2017
    多线程系列(四):Task
    多线程系列(三):线程池基础
    Docker for windows : 安装Redis
  • 原文地址:https://www.cnblogs.com/xuewen1999/p/13970282.html
Copyright © 2011-2022 走看看