zoukankan      html  css  js  c++  java
  • Go语言实现:【剑指offer】变态跳台阶

    该题目来源于牛客网《剑指offer》专题。

    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    找规律:
    1阶:1种;
    2阶:2种;
    3阶:4种;
    4阶:8种;
    n阶:2f(n-1)种;

    或者:
    n-1阶:f(n-2)+f(n-3)+…f(1)+f(0)
    n阶:f(n-1)+f(n-2)+…f(1)+f(0) => 2f(n-1)

    得出一个斐波那契函数。

    Go语言实现:
    方法一:递归

    func jumpFloor2(N int) int {
       if N <= 0 {
          return 0
       }if N == 1 || N == 2 {
          return N
       }return 2 * jumpFloor2(N-1)
    }
    

    方法二:迭代

    func jumpFloor2(N int) int {
       if N <= 0 {
          return 0
       }if N == 1 || N == 2 {
          return N
       }
    ​
       b := 2
       for i := 3; i<= N;i++ {
          b = 2 * b
       }
       return b
    }
    
  • 相关阅读:
    2021.4.4(每周总结)
    2021.4.2
    2021.4.1
    2021.3.31
    2021.3.30
    2021.3.29
    2021.3.28(每周总结)
    2021.3.26
    C语言中指针与取地址符&详解
    使用JDBC连接、操作数据库、实现数据处理
  • 原文地址:https://www.cnblogs.com/dubinyang/p/12099368.html
Copyright © 2011-2022 走看看