24.递归

作者: 写代码的向日葵 | 来源:发表于2019-09-28 09:26 被阅读0次
  • 递归:把一个大型复杂的问题层层转化为一个与问题相似的规模较小的问题来求解
  • 只需少量的程序就可描述出解题过程所需要的多次重复运算

1.求一个数的阶乘

fun main(args: Array<String>) {
    //阶乘 5阶乘 5*4*3*2*1
    val fact = fact(5)
    println(fact)
}

fun fact(n: Int): Int {
    if (n == 1) return 1
    return n * fact(n - 1)
}

2.斐波那契数列

fun main(args: Array<String>) {
    //阶乘 5阶乘 5*4*3*2*1
    val fact = fibonacci(40)
    println(fact)
}

/**
 * 求第n个斐波那契数列
 */
fun fibonacci(n: Int): Int {
    if (n == 1) return 1
    if (n == 2) return 1
    return fibonacci(n - 1) + fibonacci(n - 2)
}

相关文章

网友评论

    本文标题:24.递归

    本文链接:https://www.haomeiwen.com/subject/aalzuctx.html