N阶楼梯上楼问题_1205
来源:互联网 发布:sql server 2008安装包 编辑:程序博客网 时间:2024/05/16 10:08
- 题目描述:
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
- 输入:
输入包括一个整数N,(1<=N<90)。
- 输出:
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
- 样例输入:
4
- 样例输出:
5
import java.util.*; public class Main{ static long[] array = new long[91]; public static void main(String[] args) { // 1. Initialize Scanner scanner = new Scanner(System.in); array[1] = 1; array[2] = 2; // 2. for (int i = 3; i <= 90; i++) { array[i] = array[i - 1] + array[i - 2]; } // while (scanner.hasNext()) { int n = scanner.nextInt(); System.out.println(array[n]); } scanner.close(); } }
</pre><pre name="code" class="java"><pre name="code" class="java">设上n级楼梯的走法为a(n),则a(n)的值等于是a(n-1)的值与a(n-2)的值的和,比如上5级楼梯的走法是4级楼梯走法和3级楼梯走法的和,因为走3到级时再走一次(2级)就到5级了,同样,走到4级时再走一级也到5级了。从而a(n)=a(n-1)+a(n-2),是斐波纳契数列。显然1阶楼梯1种走法,a(1)=1,2阶楼梯2种走法,a(2)=2,所以a(3)=1+2=3,a(4)=2+3=5,a(5)=3+5=8,...,a(30)=1346269. 所以1346269即为所求。a(n)代表的含义是上n层可能有的方法数,到达n层有两种方法,一种是从n-1层迈一步走上来,另一种方法是从n-2层迈两步上来,所以a(n)=a(n-1)+a(n-2);至于后面,是递归得来的
类似的问题有:
跳台阶 1388
- 题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
- 输入:
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70)。
- 输出:
对应每个测试案例,
输出该青蛙跳上一个n级的台阶总共有多少种跳法。
- 样例输入:
5
- 样例输出:
8
import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner input= new Scanner(System.in); while (input.hasNext()) { int n=input.nextInt(); long output= result(n); System.out.println(output); } } public static long result(int n) { long fabnc[]=new long[n+2]; fabnc[1]=1; fabnc[2]=2; for(int c=3;c<=n;c++){ fabnc[c]=fabnc[c-1]+fabnc[c-2]; } return fabnc[n]; }}
中间那里可以修改成 这样for
(
long
i=
3
; i<=n; i++){
sum = a + b;
a = b;
b = sum;
}
return
sum;
0 0
- N阶楼梯上楼问题_1205
- N阶楼梯上楼问题
- N阶楼梯上楼问题
- N阶楼梯上楼问题
- N阶楼梯上楼问题
- N阶楼梯上楼问题
- 题目93:N阶楼梯上楼问题
- 题目1205:N阶楼梯上楼问题
- 题目1205:N阶楼梯上楼问题
- 题目1205:N阶楼梯上楼问题
- 1205 N阶楼梯上楼问题
- 关于N阶楼梯上楼问题
- 题目1205:N阶楼梯上楼问题
- 题目1205:N阶楼梯上楼问题
- N层楼梯上楼问题
- 天勤OJ 题目1156: N阶楼梯上楼问题
- 九度 题目1205:N阶楼梯上楼问题
- 九度 题目1205:N阶楼梯上楼问题
- 请!继续!
- Linux性能测试 pmap命令
- 求一组数中前k个最大的数
- OpenGL API(转)
- 二叉树的遍历java实现
- N阶楼梯上楼问题_1205
- hdu 2993 斜率优化+二分查找
- Android中的底部菜单框架(Fragment)
- 自我学习之双向链表
- 整理收藏一些大型网站架构技术方面的文章
- 查看Oracle数据库名和实例名
- SQL Server 行转列
- Docker学习笔记
- InstallShield 2013 应用笔记(二)