G. Recursividad

Salida

Invoca: 2, 3
Invoca: 1, 3
Invoca: 0, 3
Devuelve 3
Devuelve: 4
Devuelve: 5
5

Revísalo en Kotlin play.

fun fns(aUIntbUInt): UInt {
 return if (a == 0U) {
  println("Devuelve $b")
  b
 } else {
  println("Invoca: ${a - 1U}, $b")
  val ant = fns(a - 1U, b)
  println("Devuelve: ${ant + 1U}")
  ant + 1U
 }
}

fun main() {
 println("Invoca: 2, 3")
 println(fns(2U, 3U))
}