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

Swift解算法——台阶问题

时间:2015-08-19 01:53:27      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。
求总共有多少总跳法,并分析算法的时间复杂度。
 
首先对题目进行分析:
台阶一共有n级
因此当n = 1时——只有一种跳法
      当n = 2时——有1、1 或者 2  两种跳法
  当n = 3时——有 1、1、1 或者2、1或者1、2三种跳法
     。。。。。。。。。。。。。。。。。。。。。。。。。
  因此
  当n = k时——
  有 f(k-1)+f(k-2)种跳法
分析到这里,程序用哪种方式设计便一目了然——递归
 
//*************************************************//

func jump(var n:Int)->Int{

  //若只有一个台阶,返回1(表示一种跳法)

    if(n == 1){

        return 1

    }

  //若有两个台阶,返回2(表示两种跳法)

    if(n == 2){

        return 2

    }

    else{

        var temp = jump(n - 1) + jump(n - 2) //递归

        return temp

    }    

}

//*************************************************//

Swift解算法——台阶问题

标签:

原文地址:http://www.cnblogs.com/IOSwang/p/4741117.html

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