爬楼梯算法
Posted yuanfei1110111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬楼梯算法相关的知识,希望对你有一定的参考价值。
假设一个楼梯有 N 阶台阶,人每次最多可以跨 2 阶,求总共的爬楼梯方案数。
这里使用非递归实现:
先不写代码,自己计算当楼梯数为1/2/3/4/5时,对应的爬法有1/2/3/5/8/13/21种。可以发现,随着楼梯数N的增加,爬法总数呈现斐波那契数列规律增加,即f(n) = f(n-1) + f(n-2),知道这个规律后,使用下面的循环即可实现:
public class Test {
public static void main(String[] args) {
System.out.println(print(5));
}
static int print(int n) {
if(n == 1) {
return 1;
} else if(n == 2) {
return 2;
} else {
int s1 = 1;
int s2 = 2;
int ss = 0;
for(int i = 3; i<= n; i++) {
ss = s1 + s2;
s1 = s2;
s2 = ss;
}
return ss;
}
}
}
以上是关于爬楼梯算法的主要内容,如果未能解决你的问题,请参考以下文章