recursividad
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: 321Solució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:6Solució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...
Regístrate para leer el documento completo.