sábado, 19 de septiembre de 2015

Tarea 3 - Convertir un algoritmo recursivo en iterativo y viceversa

Convertir un algoritmo recursivo en iterativo

1  Analizar el algoritmo recursivo . En este ejemplo , utilizará la solución recursiva para el problema factorial : 
int factorial ( int h ) { 
           if ( h== 0 ) {
                        return 1 ;
           } 
          else { 
                       h de devolución * factorial ( h - 1 ) ;
           } 


2  Decidir si los argumentos de la función se llevará a cabo en variables. En el ejemplo factorial , los resultados de el factorial se pueden almacenar en una variable " total_factorial " para la duración de cualquier iteración . Este ejemplo muestra el algoritmo factorial recursiva y la variable que se utilizará para el argumento recursivo : 
total_factorial int = 0 : 

Determinar una estructura de bucle . En C + + , por ejemplo , el bucle ", mientras que " funciona bien con iteraciones que tienen una longitud indeterminada . " Para " bucles , por otro lado , funciona bien cuando un bucle irá por una duración estricta , representado por un número entero de algún tipo . Para el ejemplo factorial , un bucle "for" va a funcionar bien : 
int factorial = 5 ; total_factorial int = 0 ; 

4  Determinar detener condiciones. Por lo general , como en el ejemplo factorial , la recursión terminará cuando se cumpla una condición . En un bucle interative , como el bucle , es muy útil saber de antemano . Ya sabes que en encontrar el factorial de un número " n " que va a repetir n- 1 veces ( excepto el cero ) , se puede empezar a la una y se extenderán hasta el número factorial : 
for (int i = 1 ; i < = factorial , i + + ) { 
        if ( i == 1 ) { 
                  total_factorial = 1 ;
       } 
       else {
                  totales factorial * = i ;
        }
 } 

No hay comentarios:

Publicar un comentario