题目:对登上2022阶台阶有多少种方法;

小明对于上楼梯的事情很感兴趣。他每一次可以上1阶或2阶,
他想知道他登上2022阶台阶有多少种方法。
[ 8954654]
(答案需要对1e9+7(1000000007)取模,如计算初始结果为:1000000008,请返回1。)

用BigInteger来算大数;

import java.math.BigInteger;
import java.util.Scanner;/*** @author XQfeng*/
public class ClimbStairs {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();System.out.println(ClimbStairs.climbStairs3(n));//861314339}public static BigInteger climbStairs1(int n) {//用递归暴力解法//当楼梯阶数很大的时候就会因为时间的问题算不出来if (n == 1) {return BigInteger.valueOf(1);} else if (n == 2) {return BigInteger.valueOf(2);} else {return climbStairs1(n - 1).add(climbStairs1(n - 2));}}public static BigInteger climbStairs2(int n) {//是斐波拉契数列,分析案例;if (n == 1) return BigInteger.valueOf(1);BigInteger a = BigInteger.valueOf(1);BigInteger b = BigInteger.valueOf(2);BigInteger c;for (int i = 3; i <= n; ++i) {c = a.add(b);a = b;b = c;}//对1000000007取模return b.mod(BigInteger.valueOf(1000000007));}/*用动态规划;dp[1] = 1;dp[2] = 2;dp[3] = dp[2] + dp[1]......dp[n] = dp[n-1] + dp[n2]*/public static BigInteger climbStairs3(int n) {//这里大小根据自己需要,或者使用 List 也可以BigInteger[] dp = new BigInteger[100000];dp[1] = BigInteger.valueOf(1);dp[2] = BigInteger.valueOf(2);for( int i = 3;i <= n;++i ){dp[i] = dp[i-1].add(dp[i-2]);}return dp[n].mod(BigInteger.valueOf(1000000007));}
}

Java解决上台阶问题相关推荐

  1. java 打开指定文件,java解决指定应用程序打开指定文件

    java解决指定应用程序打开指定文件 //打开工具的路径及名字 String toolsPath = "D:/office/Office12/WINWORD.EXE"; //被打开 ...

  2. java解决错误经验_在Java错误进入生产之前的新处理方式

    java解决错误经验 我们如何认识到解决预生产错误的旧方法还不够,以及我们如何能够改变它 第一次尝试就没有完美的代码,我们所有人都可以证明我们已经通过艰苦的努力学习了. 不管我们使用多少测试周期,代码 ...

  3. 设计一个名为complex的类来表示复数_complex类java解决

    作者:wzu_cza123 出自:CSDN 原文:blog.csdn.net/wzu_cza123/article/details/108857953?utm_medium=distribute.pc ...

  4. Java 解决跨域问题

    JAVA | Java 解决跨域问题 文章目录 JAVA | Java 解决跨域问题 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一.使用Filter ...

  5. Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

    Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 参考文章: (1)Java解决Hash(散列)冲突的四种方法--开放地址法 ...

  6. 现实世界中正在用Java解决的难题

    我们采访了11位专业商务人士,他们中大部分人都有从事涉及 Java 生态系统相关的工作.我向他们询问了一些问题,在他们职业生涯中用Java 解决了哪些实际问题. 我们采访了这些人: Anthony K ...

  7. java 例子一对小兔子,Java解决标题:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子。...

    Java解决题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子... 题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生 ...

  8. Java double 保留一个小数、理解BigDecimal、Java解决精度问题

    Java double 保留一个小数 两种方法 @Testpublic void test2() {double f = 234.353333000000000000000000;BigDecimal ...

  9. eclipse提示:“The superclass “javax.servlet.http.HttpServlet“ was not found on the Java“解决办法

    eclipse提示:"The superclass "javax.servlet.http.HttpServlet" was not found on the Java& ...

最新文章

  1. LINQTOSQL作为底层ORM框架后,我们的数据基类就变成了这个样子
  2. 【每周NLP论文推荐】 开发聊天机器人必读的重要论文
  3. html分页首页上一页下一页,HTML静态分页(形如:首页,上一页,下一页,尾页)...
  4. java hashtable 并发_Java 并发容器 —— Hashtable 与 Collections.synchronizedMap(HashMap) 的区别...
  5. centos MySQL 双机_CentOS利用Keepalived构建双主MySQL+双机热备
  6. 一个微服务架构的消费端
  7. layui数据表格获取当前页数
  8. Linux下ps命令详解
  9. tcpdump实战详解
  10. android中颜色对应的值
  11. @property 和@synthesize
  12. 我 yii2 (一)
  13. JAVA实战项目--文章发布系统
  14. 小象学院 第11章 提升
  15. 记录DBeaver报SQL 错误 [1064] [42000]: #42000的一个坑
  16. 高精算法推动高精地图落地
  17. [笔记][总结] MIT线性代数 Gilbert Strang 对称矩阵
  18. jQuery 使用slideToggle()滑动显示隐藏
  19. 来了!阿里公布全球数学竞赛决赛名单 张益唐将授课大师班
  20. Springboot毕设项目宠物医院预约挂号系统g8yr6(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 【python学习】-字典学习(访问字典所有键与值、修改与更新字典、删除字典)
  2. SpringBoot热部署方案
  3. js如何实现四舍五入 Math.round()
  4. 股票、期货、期权的差异
  5. 【java基础】java的官网和jdk安装和下载
  6. 解决打开CHM文件后,右侧显示空白
  7. WIN7 ftp网线直连传东西怎么设置
  8. TCP可靠传输-拥塞控制
  9. win7+mbr安装黑苹果
  10. idea合并分支代码怎么操作呢?