- 递归:把一个大型复杂的问题层层转化为一个与问题相似的规模较小的问题来求解
- 只需少量的程序就可描述出解题过程所需要的多次重复运算
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)
}
网友评论