Java解决上台阶问题
题目:对登上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解决上台阶问题相关推荐
- java 打开指定文件,java解决指定应用程序打开指定文件
java解决指定应用程序打开指定文件 //打开工具的路径及名字 String toolsPath = "D:/office/Office12/WINWORD.EXE"; //被打开 ...
- java解决错误经验_在Java错误进入生产之前的新处理方式
java解决错误经验 我们如何认识到解决预生产错误的旧方法还不够,以及我们如何能够改变它 第一次尝试就没有完美的代码,我们所有人都可以证明我们已经通过艰苦的努力学习了. 不管我们使用多少测试周期,代码 ...
- 设计一个名为complex的类来表示复数_complex类java解决
作者:wzu_cza123 出自:CSDN 原文:blog.csdn.net/wzu_cza123/article/details/108857953?utm_medium=distribute.pc ...
- Java 解决跨域问题
JAVA | Java 解决跨域问题 文章目录 JAVA | Java 解决跨域问题 引言 什么是跨域(CORS) 什么情况会跨域 解决方案 前端解决方案 后端解决方案 具体方式 一.使用Filter ...
- Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区
Java解决Hash(散列)冲突的四种方法--开放地址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 参考文章: (1)Java解决Hash(散列)冲突的四种方法--开放地址法 ...
- 现实世界中正在用Java解决的难题
我们采访了11位专业商务人士,他们中大部分人都有从事涉及 Java 生态系统相关的工作.我向他们询问了一些问题,在他们职业生涯中用Java 解决了哪些实际问题. 我们采访了这些人: Anthony K ...
- java 例子一对小兔子,Java解决标题:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子。...
Java解决题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子... 题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生 ...
- Java double 保留一个小数、理解BigDecimal、Java解决精度问题
Java double 保留一个小数 两种方法 @Testpublic void test2() {double f = 234.353333000000000000000000;BigDecimal ...
- 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& ...
最新文章
- LINQTOSQL作为底层ORM框架后,我们的数据基类就变成了这个样子
- 【每周NLP论文推荐】 开发聊天机器人必读的重要论文
- html分页首页上一页下一页,HTML静态分页(形如:首页,上一页,下一页,尾页)...
- java hashtable 并发_Java 并发容器 —— Hashtable 与 Collections.synchronizedMap(HashMap) 的区别...
- centos MySQL 双机_CentOS利用Keepalived构建双主MySQL+双机热备
- 一个微服务架构的消费端
- layui数据表格获取当前页数
- Linux下ps命令详解
- tcpdump实战详解
- android中颜色对应的值
- @property 和@synthesize
- 我 yii2 (一)
- JAVA实战项目--文章发布系统
- 小象学院 第11章 提升
- 记录DBeaver报SQL 错误 [1064] [42000]: #42000的一个坑
- 高精算法推动高精地图落地
- [笔记][总结] MIT线性代数 Gilbert Strang 对称矩阵
- jQuery 使用slideToggle()滑动显示隐藏
- 来了!阿里公布全球数学竞赛决赛名单 张益唐将授课大师班
- Springboot毕设项目宠物医院预约挂号系统g8yr6(java+VUE+Mybatis+Maven+Mysql)