package com.zhengkw.scala.day03
/**
* @ClassName: Recursive
* @author: zhengkw
* @description: 匿名函数
* @date: 20/04/22下午 3:41
* @version:1.0
* @since: jdk 1.8 scala 2.11.8
*/
object Recursive{
def main(args: Array[String]): Unit = {
println(fibonacci(5))
println(fibonacci1(0))
/**
* @descrption: 斐波那契的尾递归 尾递归是最后一行只有递归没有其他运算
* @return: int
* @date: 20/04/23 下午 10:25
* @author: zhengkw
*/
def fibonacci(n: Int, f1: Int = 1, f2: Int = 1): Int = {
if (n == 1) f1
else fibonacci(n - 1, f2, f1 + f2)
}
/**
* @descrption: 斐波那契的递归
* @param n
* @return: int
* @date: 20/04/23 下午 10:25
* @author: zhengkw
*/
def fibonacci1(n: Int): Int = {
if (n <= 2) 1
else fibonacci1(n - 2) + fibonacci1(n - 1)
}
}
}
scala中的递归与尾递归随笔code
最新推荐文章于 2021-09-06 18:22:02 发布