zoukankan      html  css  js  c++  java
  • 爬楼梯2,走一级或三级台阶(java)

    在你面前有一个n阶的楼梯(n>=100且n<500),你一步只能上1阶或3阶。
    请问计算出你可以采用多少种不同的方式爬完这个楼梯(到最后一层为爬完)。

    要考虑n,n=100的时候,int类型long类型都溢出了,而且越来越大,要用BigInteger数据类型,

    规律就是a[n]=a[n-1]+a[n-3],先列出前六个台阶的总的方式,找到规律,用递归会超时,直接用循环更快。

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.math.BigInteger;
    public class Main
    {
      public static void main(String[] args) throws Exception
      {    BufferedReader br
    = new BufferedReader(new InputStreamReader(System.in));    int n = Integer.parseInt(br.readLine());    BigInteger[] count = new BigInteger[n];   count[0]=new BigInteger("1");   count[1]=new BigInteger("1");   count[2]=new BigInteger("2");   for(int i = 3;i < n;i++)   {   count[i] = count[i-1].add(count[i-3]);   }   System.out.print(count[n-1]); } }

    链接:https://www.nowcoder.com/questionTerminal/1e6ac1a96c3149348aa9009709a36a6f?f=discussion
    来源:牛客网

  • 相关阅读:
    上机练习
    myeclipse 快捷键
    关于java classpath问题
    windows installer 出错问题解决
    hibernate 问题
    axis2 部署webservice
    webservice开发
    关于web前端开发
    软件工程工具
    计网笔记
  • 原文地址:https://www.cnblogs.com/lhh666/p/12060627.html
Copyright © 2011-2022 走看看