El sabor de la recursividad

Video: 79. Programación en C++ || Funciones || Recursividad - Factorial de un número

recursividad es una palabra grande, de miedo que se oye a menudo acerca de la programación, especialmente el tipo frustrante de la programación que se enseñan en la universidad. Aunque es un concepto fácil de describir, es realmente una mente-soplador cuando se trata de entender cómo funciona la recursividad. La mayoría de la gente simplemente aceptarlo y seguir adelante. ¡Aqui no!

Video: Recursividad Parte 1

recursividad es básicamente el proceso de una función que se hace llamar. Por ejemplo:

void func (int x) {func (x) -}

En este trozo de código, se ve un terrible ejemplo de una función recursiva, pero es orientativa, aquí: El func () función llama a sí mismo. Esa es la recursividad. Ahora lo que sucede en este ejemplo es básicamente un bucle sin fin, y, gracias a una técnica algo-o-otro, llamado el Pointe pilar, el equipo finalmente se bloquea. Pero es sólo una ilustración.

Para la recursividad para trabajar, la función debe tener una condición de rescate, al igual que un bucle. Por lo tanto, ya sea el valor pasado a la función recursiva o su valor de retorno debe ser probado. Aquí hay un mejor ejemplo de una función recursiva:

recursividad vacío (int x) {if (x == 0) {return-else puts ("Boop!") -recursion (- x) -}}

los recursión () función acepta el valor x. Si x es igual a cero, las fianzas de función. De lo contrario, la función se llama de nuevo, pero el valor de x esta reducido. Se utiliza el operador de decremento prefijo para que el valor de x esta reducido antes de se realiza la llamada.

La muestra recursión () función, básicamente, escupe el texto Boop! un número dado de veces. Así que si recursión () se llama con el valor 10, se ve que el texto aparece diez veces.

La parte loca sobre la recursividad es que la función sigue llamando en sí, envolviéndose más y más fuerte, como si fuera en una espiral. En el ejemplo anterior, la condición x == 1 Por último se desenrolla ese lío revirado, cada vez que tira hacia atrás hasta que se realiza la función.

Video: Curso javascript - Recursividad

El siguiente código muestra un completo programa utilizando la muestra recursión () función.

# include vacío recursividad (int x) -INT main () {recursividad (10) -Retorno (0) - recursividad} void (int x) {if (x == 0) {return-else puts ("Boop!") -recursion (- x) -}}

Una manifestación común de la recursividad es una función factorial. los factorial es el resultado de multiplicar un valor por cada uno de sus números enteros positivos. Por ejemplo:

4! = 4 × 3 × 2 × 1

El resultado de esto es factorial 24. El ordenador también puede realizar este cálculo, ya sea por la aplicación de un bucle o la creación de una función recursiva. He aquí una función de este tipo:

int factorial (int x) {if (x == 1) return (x) -elsereturn (x * factorial (x-1)) -}

Al igual que con las otras funciones recursivas, la factorial() función contiene una condición de salida: x == 1. De lo contrario, la función se llama de nuevo con uno menos que el valor actual de x. Sin embargo, toda la acción se lleva a cabo con los valores de retorno.

Artículos Relacionados