[FUNDAMENTOS DE PROGRAMACIÓN CON C#] FUNDAMENTOS DE PROGRAMACIÓN CON C#: 015-RECURSIVIDAD
Es cierto que la recursividad en gran parte puede ser reemplazado por un flujo de trabajo normal basado en bucles, sin embargo, existen casos en los que son necesarios usar netamente el tema de recursividad por la manera en que esto trabaja que consiste generalmente en la instancia de un método dentro de si misma con lo que el proceso se adentra hasta el último punto y empieza a resolver la operación asignada de forma recursiva en la inversión de esta.
Seguidamente les dejo con el código que se aplica en este ejemplo para el manejo de la suma de los primeros "n" números naturales.
El ejemplo se hizo con dos opciones; uno mediante la resolución de bucles y otro mediante la aplicación de recursividad por lo que en el siguiente código existe la representación de ambos casos.
Clase MiClase.cs
namespace AppFirst
{
public class MiClase
{
public int operarBucle(int n)
{
int resultado = 0;
for (int i = n; i > 0; i--)
{
resultado += i;//resultado=resultado+i;
}
return resultado;
}
public int operarRecursividad(int n)
{
if (n == 1)
{
return 1;
}
return operarRecursividad(n - 1)+n;
}
/*
operarRecursividad(3)=operarRecursividad(2)+3
operarRecursividad(2)=operarRecursividad(1)+2
operarRecursividad(1)=1
operarRecursividad(3)=3+3
operarRecursividad(2)=1+2=3
operarRecursividad(1)=1
*/
}
}
Clase principal Program.cs
using System;
namespace AppFirst
{
public class Program
{
public static void Main(string[] args)
{
MiClase miClase = new MiClase();
Console.WriteLine(miClase.operarBucle(190));
Console.WriteLine(miClase.operarRecursividad(190));
Console.ReadLine();
}
}
}
Como pueden ver en el código anterior, existe la posibilidad de alternar la solución al ejercicio planteado de dos maneras tal como se mencionó al principio del post.
Para mayor información de este ejemplo, les dejo a continuación con un video donde se explica a detalle cada aspecto de este tema.
Comentarios
Publicar un comentario