Origen(Data);

Java: Problemas de recursividad con solución

He estado viendo el tema de la recursividad  y como aplicarlo en la programación, dejare algunos ejercicios ya resueltos aplicando la recursividad con Java.

  • Crea un programa donde se pida en el principal la tabla de multiplicar deseada, en un método recursivo generar la tabla de multiplicar. Se multiplicara hasta querer llegar al numero 12 como resultado. El formato de salida es el siguiente:
    5 x 1 = 5
    5 x 2 = 10
import java.util.Scanner;

public class Main {

	@SuppressWarnings({ "resource" })
	public static void main(String[] args) {

		Scanner reading = new Scanner(System.in);
		int num=0;

		System.out.print("Pida la tabla de multiplicar: ");
		num=reading.nextInt();
		tableMultiplication(num,10);

	}

    public static void tableMultiplication(int TABLE, int LENGTH){

    	if (LENGTH>1) {
    		tableMultiplication(TABLE,LENGTH-1);
    	}

    	if ((TABLE*LENGTH)<=12) {

    		System.out.printf("%d x %d = %d \n",TABLE,LENGTH,(TABLE*LENGTH));
    	}
    }

}
  • Crea un programa donde ingreses 10 nombres de ciudades, y en un método recursivo muestra las ciudades al reves (es decir del ultimo al primero)
import java.util.Scanner;

public class Main {

	static String country[] = new String[10];

	public static void main(String[] args) {

		@SuppressWarnings("resource")
		Scanner reading = new Scanner(System.in);

		for (int i = 0; i < country.length; i++) {

			System.out.printf("Ingrese el nombre de la ciudad #%d: ",(i+1));
			country[i]=reading.nextLine();
		}

		//Llamada al metodo recursivo
		System.out.println("\n");
		outputCountry(country.length-1);
	}

	public static void outputCountry(int LENGTH) {

		if(LENGTH==0) { //Termina cuando country[] llegue a la posicion 0 

			System.out.printf("Ciudad #%d : %s  \n",(LENGTH+1),country[LENGTH].toUpperCase());

		}else {

			System.out.printf("Ciudad #%d : %s \t*\n",(LENGTH+1),country[LENGTH].toUpperCase());
			outputCountry(LENGTH-1);
		}

	}

}
  • Crea un programa donde ingreses en un método recursivo la captura de numeros, esto son almacenados en un arreglo, la recursividad termina cuando el usuario ingrese el numero -1, al termino del mismo, muestra los valores capturados en el mismo método
import java.util.ArrayList;
import java.util.Scanner;
 
public class Main {
 
    static Scanner reading = new Scanner(System.in);
    static ArrayList number = new ArrayList();
    static boolean flag=true;
    static int count=0;
 
    public static void main(String[] args) {
 
        captureNumbers();
 
    }
 
    public static void captureNumbers() {
 
        int value=0;
 
        if(flag) {
 
            System.out.print("Ingrese un numero: ");
            value=reading.nextInt();
 
            if(value==-1) {
 
                //Temina de capturar datos en el Array
                flag=false;
                System.out.println("\n[VALORES CAPTURADOS]\n");
                captureNumbers();
 
            }else {
 
                //Se agrega el numero capturado al ArrayList
                number.add(value);
 
                //Se vuelve a llamar a si mismo la funcion
                captureNumbers();
            }
 
        }else {
 
            if(count==number.size()) {
 
                //Test
                System.out.println("\n [ Termino ] ");
                System.out.println("El contador es: "+count);
                System.out.println("El arreglo es: "+number.size());
 
            }else {
 
                //System.out.println("\n[VALORES CAPTURADOS]\n");
                System.out.println("Numero #"+count+" = "+number.get(count));
                count++;
                captureNumbers();
 
            }
        }
 
    }
}
  • Crea un programa donde se pida el nombre de una persona en el principal y en un método recursivo mostrarlo de forma inversa.
import java.util.Scanner;
 
public class Main {
 
    static char[] charName=null;
 
    public static void main(String[] args) {
 
        @SuppressWarnings("resource")
        Scanner reading = new Scanner(System.in);
 
        System.out.print("Ingrese su nombre: ");
        String name = reading.nextLine();
        charName = name.toCharArray();
 
        System.out.println("\n[ NOMBRE AL REVES ]");
        nameReverse(charName.length-1);
 
    }
 
    public static void nameReverse(int LENGTH) {
 
        if(LENGTH==0) {
 
            System.out.print(charName[LENGTH]+".");
 
        }else {
 
            System.out.print(charName[LENGTH]);
            nameReverse(LENGTH-1);
        }
 
    }
 
}
  • Crear un programa utilizando la recursividad para obtener la suma total de números, estos son almacenados en un acumulador, mostrar la suma total cuando el usuario capture el valor de 0.
import java.util.Scanner;
 
public class Main {
 
    static Scanner reading = new Scanner(System.in);
 
    public static void main(String[] args) {
 
        int accumulator=0;
        int count=1;
        captureRecursive(accumulator, count);
 
    }
 
    public static void captureRecursive(int ACCUMULATOR, int COUNT) {
 
        System.out.printf("Ingrese el #%d : ",COUNT);
        int num=reading.nextInt();
 
        if(num==0) {
 
            System.out.println("\nSe ingreso cero\n"
                    + "Suma total: "+ACCUMULATOR+"\n"
                            + "Fin!.");
 
        }else {
 
            ACCUMULATOR+=num;
            captureRecursive(ACCUMULATOR,COUNT+1);
        }
 
    }
 
}

Anuncio publicitario
Licencia Creative Commons

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional.

Licencia Creative Commons

Descubre cómo puedes contribuir a mi blog con donaciones. Tus recompensas me ayudan a seguir creando contenido valioso para la comunidad. Con tan solo un par de clics, puedes marcar la diferencia y apoyarme. ¡Apoya ahora!. 🚀🔥

Una respuesta a “Java: Problemas de recursividad con solución”

  1. muy bueno, no estaria demas poner comentarios al procedimiento

    Me gusta

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Crea un sitio web o blog en WordPress.com

A %d blogueros les gusta esto: