码迷,mamicode.com
首页 > 编程语言 > 详细

爬楼梯算法

时间:2019-01-28 20:13:20      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:print   写代码   void   算法   实现   斐波那契数列   方案   str   一个   

假设一个楼梯有 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;
        }
    
    }
}

爬楼梯算法

标签:print   写代码   void   算法   实现   斐波那契数列   方案   str   一个   

原文地址:https://www.cnblogs.com/yuanfei1110111/p/10331462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!