35.爬楼梯(题号:70)

public class ClimbStairs {
    //方法一:动态规划
    public int climbStairs1(int n) {
        //定义两个临时变量,保存前两个状态
        int pre2 = 1,pre1 = 1;//fib(1)和fib(2)
        int curr;
        for (int i = 1; i <n ; i++) {
            //定义一个临时变量,保存当前的状态
            curr = pre1+pre2;
            pre2 = pre1;
            pre1 = curr;
        }
        return pre1;
    }

    //方法二:数学公式法
    public int climbStairs(int n) {
        double sqrt_5 = Math.sqrt(5);
        double fib = (Math.pow((1 + sqrt_5) / 2, n + 1) - Math.pow((1 - sqrt_5) / 2, n + 1)) / sqrt_5;
        return (int) fib;
    }

    public static void main(String[] args) {
        ClimbStairs climbStairs = new ClimbStairs();
        System.out.println(climbStairs.climbStairs(3));
    }
}
全部评论

相关推荐

2025-12-18 11:59
广州南方学院 C++
牛客78682892...:直接点还好,总比要了简历也不回的强
点赞 评论 收藏
分享
牛至超人:哈工大已经很棒了,不需要加括号了,然后咋没有实习经历呢?火速趁寒假整一段实习,导师不让就狠狠肘击
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务