zoukankan      html  css  js  c++  java
  • 青蛙跳台阶问题

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

    思路:这个问题归根结底还是一个费布拉奇数列,设跳法为f(n),则当青蛙第一次跳一级台阶时,剩下n-1个台阶,有f(n-1)种跳法,当青蛙第一次跳二级台阶时,剩下n-2个台阶,有f(n-2)种跳法。

    故得到数学关系:f(n) = f(n-1) + f(n-2);

    第一种:递归实现

      int f(int n)  {    

          if (n == 1 || n == 2)    

        return n;  

       else  

        return f(n - 1) + f(n - 2);    

       }    

    第二种:非递归实现

      public static int calc3(int n) {    

        if (n == 1 || n == 2)  

        return n;    

        int s1 = 1, s2 = 2, s3 = 1;  

        for (int i = 3; i <= n; ++i) {     

        s3 = s1 + s2;    

             s1 = s2;    

             s2 = s3;    

          }  

          return s3;    

     }    

  • 相关阅读:
    网络爬虫基础练习
    综合练习:词频统计
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的HBase操作
    第三章、熟悉常用的HDFS操作
    爬虫大作业
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
  • 原文地址:https://www.cnblogs.com/huaiyinxiaojiang/p/6429252.html
Copyright © 2011-2022 走看看