Ejemplos y ejercicios

Ejemplo: Calcular la potencia n-ésima de a, siendo a y n enteros y a≥0 y n≥0

Qa0n0Q \equiv a \geq0 \wedge n \geq0

Funcion POTENCIA (a:entero, n:entero) retorna (p:entero) 
    caso
        n = 0 -> 1
        n > 0  -> POTENCIA(a, n-1) * a
    fcaso 
ffunción

RR \equiv {p=anp = a^{n} }

Qa0n0Q \equiv a \geq0 \wedge n \geq0

Funcion POTENCIA (a:entero, n:entero) retorna (p:entero) 
    si n = 0 entonces retorna 1
    sino retorna POTENCIA(a, n-1) * a
    fcaso 
ffunción

RR \equiv {p=anp = a^{n} }

Ejemplo: Número de cifras de un número n

Diseñar una función recursiva que retorne el número de cifras de un número entero n, siendo n≥0.

QQ \equiv {n0n \geq0}

Funcion NUMERO_CIFRAS (n : entero) retorna (c : entero)

¿NUMERO_CIFRAS(n)?

n = 7654

NUMERO_CIFRAS(7654)?

Supongo conocido NUMERO_CIFRAS(765) por lo que

¿ NUMERO_CIFRAS(7654) = NUMERO_CIFRAS(765) +1

QQ \equiv {n0n \geq0}

Funcion NUMERO_CIFRAS (n : entero) retorna (c : entero)
    si n < 10 entonces retorna 1
        sino retorna NUMERO_CIFRAS(n/10) + 1
    fsi
ffuncion

Ejercicio propuesto: Suma de cifras de un número n

Diseñar una función recursiva que retorne la suma de las cifras de un número entero n, siendo n≥0.

QQ \equiv {n0n \geq0}

Funcion SUMA_CIFRAS (n : entero) retorna (c : entero)

Ejercicio propuesto: Semifactorial de un número n

Dado un número entero n, siendo n≥1, diseñar una función recursiva que retorne el semifactorial, o doble factorial, de n.

Nota.- el producto de todos los enteros desde 1 hasta el entero no-negativo n que tienen la misma paridad (pares o impares) que n se llama doble factorial o semifactorial de n y se representa como n!!

QQ \equiv {n0n \geq0}

Función SEMIFACTORIAL ( n:entero ) retorna ( p:entero )

Ejercicio propuesto: Fibonacci

Dado un número entero n, siendo n≥0, diseñar una función recursiva que retorne el número que ocupa la posición n en la sucesión de Fibonacci. Se considerará que el primer número de la serie (el 0) ocupa la posición 0.

La sucesión de Fibonacci es la siguiente sucesión infinita de números naturales: “La sucesión comienza con los números 0 y 1, y a partir de éstos, cada término es la suma de los dos anteriores.”

QQ \equiv {n0n \geq0}

Función FIBONACCI( n:entero ) retorna ( p:entero )

Last updated