recursividad

Páginas: 5 (1015 palabras) Publicado: 6 de junio de 2013
Planteamiento del Ejercicio acompañado del algoritmo de resolución en Java
Planteamiento: Ejercicio 1. Programar un algoritmo recursivo que calcule el factorial de un número. Solución:
Código
   int factorial(int n){      if(n==0) return 1;   //AXIOMA      else return n*factorial(n-1);  //FORMULA RECURSIVA   }  


Planteamiento: Ejercicio 2. Programar un algoritmo recursivo quecalcule un número de la serie fibonacci. Solución:
Código
   int fibonaci(int n){      if(n==1 || n==2) return 1;      else return fibonaci(n-1)+fibonaci(n-2);    }  


Planteamiento: Ejercicio 3. Programar un algoritmo recursivo que permita hacer la división por restas sucesivas. Solución:
Código
   int division (int a, int b)    { if(b > a) return 0; else    returndivision(a-b, b) + 1;    }  


Planteamiento: Ejercicio 4. Programar un algoritmo recursivo que permita invertir un número. Ejemplo: Entrada: 123 Salida: 321 Solución:
Código (nota el parámetro r en la llamada inicial debe valer 0)
int invertir(int n, int r)
{ if (n == 0)
return r;
else
return invertir(n/10, 10*r+n%10);
}

Planteamiento: Ejercicio 5.Programar un algoritmo recursivo que permita sumar los dígitos de un número. Ejemplo: Entrada: 123 Resultado:6 Solución:
Código
    int sumar_dig (int n)    { if (n == 0)      //caso base    return n; else    return sumar_dig (n / 10) + (n % 10);    }


Planteamiento: Ejercicio 6. Programar un algoritmo recursivo que permita hacer una multiplicación, utilizando el método Ruso. Paramas informacion: aqui. Solución:
Código
    int mult_rusa(int A, int B)    {        if(A==1){    return (B); } if(A%2!=0){ return(B+mult_rusa( A/2 , B*2)); } else{ return(mult_rusa( A/2 , B*2)); }                                    }


Planteamiento: Ejercicio 7. Programar un algoritmo recursivo que permita sumar los elementos de un vector. Solución:
Código
    intsuma_vec(int v [], int n)    { if (n == 0)    return v [n]; else    return suma_vec(v, n - 1) + v [n];    }


Planteamiento: Ejercicio 8. Programar un algoritmo recursivo que permita multiplicar los elementos de un vector. Solución:
Código
    int multiplicar (int vec [], int tam)    { if (tam == 0)    return (vec [0]); return (vec [tam] * multiplicar (vec, tam - 1));    }Planteamiento: Ejercicio 9. Programar un algoritmo recursivo que calcule el Maximo comun divisor de dos números. Solución:
Código
   int sacar_mcd(int a, int b) {        if(b==0)            return a;        else            return sacar_mcd(b, a % b);    }  


Planteamiento: Ejercicio 10. Programar un algoritmo recursivo que determine si un número es positivo. Solución:
Código
 public boolean positivo(int n){     if(n>0) return true;     else return negativo(n);    }      public boolean negativo(int n){     if(n matriz.length -1){ //Si llegó a la ultima coluna, reseteamos los datos para la siguiente i++; j=0; aux++; } if(i = (aux-1)){ //comprueba que estemos en el lugar adecuado, es decir ira imprimiento escaladamente if(i==0)// si es la primera filaingresamos aux=1 matriz[i][j] = matriz[i][j]=aux; else matriz[i][j] = matriz[i][i-1]*2;//ingresamos el valor correspondiente al ultimo de la "escala" *2 llenarMatriz(matriz, i , j+1); } else{ //si no, asignamos los valores anteriores de la escala if(j==0)// comprobamos si es el primer digito a ingresar matriz[i][j] = j+1; else matriz[i][j] =matriz[i-1][j];// asignamos el mismo numero de la fila anterior (i-1) llenarMatriz(matriz, i, j+1); } } }   public static void imprimir(){ //este metodo nos imprime la matriz por consola   for(int i=0; i< matriz.length; i++){ for(int j=0; j< matriz.length; j++){ System.out.print(matriz[i][j] + " "); } System.out.print("\n"); } }   }


Planteamiento: Ejercicio 15. Programar un...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Recurso
  • recursos
  • recursividad
  • Recursos
  • Recursos
  • Recurso
  • Recursos
  • recursos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS