none
Tabla de multiplicar con recursividad RRS feed

  • Pregunta

  • Necesito un ejemplo recursivo que me permita crear una tabla de multiplicar de cualquier numero y lo multiplique hasta el 10 
    Nunca he sido bueno en recursividad, alguien que pueda ayudarme?
    Gracias por su atención 
    lunes, 5 de diciembre de 2016 16:09

Respuestas

  • ProgramadorAECF,

    En tu historial hay más de un post consultando por ejercicios de recursión, deberías tener bastante claro la resolución de estos casos.

    Pienso que realizar una operación de multiplicación como tal no es un ejercicio adecuado para aprender la recursión, sin embargo si intentamos descomponer la operación quizá podamos hacer algo al respecto. Por ejemplo, el resultado de la expresión (2 * 5) es sumar 5 veces el número 2, por tanto, podríamos orientar la recursión a acumular la sumatoria de los valores, algo como:

    private int Multiplicacion(int multiplicando, int maxMultiplicador)
    {
    	if (maxMultiplicador == 0) return 0;
    	
    	return multiplicando + Multiplicacion(multiplicando, maxMultiplicador - 1);
    }
    
    private void btnRecursion_Click(object sender, EventArgs e)
    {
    	int multiplicando = 2; //Número que se está multiplicando
    	lbxTablaMultiplicar.Items.Clear();
    
    	for (int i = 1; i <= 10; i++) //i = veces que se suma el multiplicando (del 1 al 10)
    	{
    		lbxTablaMultiplicar.Items.Add(
    			string.Format("{0} * {1} = {2}", multiplicando, i, 
    			Multiplicacion(multiplicando, i).ToString()));
    	}
    }



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Sergio Parra martes, 6 de diciembre de 2016 6:53
    • Marcado como respuesta ProgramadorAECF martes, 6 de diciembre de 2016 16:19
    lunes, 5 de diciembre de 2016 17:10

Todas las respuestas

  • Hola

    Aquí varios ejemplos de recursividad.

    http://eve-ingsistemas-u.blogspot.com/2012/04/ejemplos-de-recursividad-vbnet.html

    Una función recursiva es aquella que se llama a si misma.

    Saludos

    lunes, 5 de diciembre de 2016 16:28
  • ProgramadorAECF,

    En tu historial hay más de un post consultando por ejercicios de recursión, deberías tener bastante claro la resolución de estos casos.

    Pienso que realizar una operación de multiplicación como tal no es un ejercicio adecuado para aprender la recursión, sin embargo si intentamos descomponer la operación quizá podamos hacer algo al respecto. Por ejemplo, el resultado de la expresión (2 * 5) es sumar 5 veces el número 2, por tanto, podríamos orientar la recursión a acumular la sumatoria de los valores, algo como:

    private int Multiplicacion(int multiplicando, int maxMultiplicador)
    {
    	if (maxMultiplicador == 0) return 0;
    	
    	return multiplicando + Multiplicacion(multiplicando, maxMultiplicador - 1);
    }
    
    private void btnRecursion_Click(object sender, EventArgs e)
    {
    	int multiplicando = 2; //Número que se está multiplicando
    	lbxTablaMultiplicar.Items.Clear();
    
    	for (int i = 1; i <= 10; i++) //i = veces que se suma el multiplicando (del 1 al 10)
    	{
    		lbxTablaMultiplicar.Items.Add(
    			string.Format("{0} * {1} = {2}", multiplicando, i, 
    			Multiplicacion(multiplicando, i).ToString()));
    	}
    }



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Sergio Parra martes, 6 de diciembre de 2016 6:53
    • Marcado como respuesta ProgramadorAECF martes, 6 de diciembre de 2016 16:19
    lunes, 5 de diciembre de 2016 17:10
  •         private void Tabla(int num, int dato)
            {
                // Recursidad
                if (dato < 10)
                    Tabla(num, dato + 1);

                // Agrega cada operacion al listbox
                lstTabla.Items.Add(num + " x " + dato + " = " +
                    (num * dato));
            }

            private void btnCalcular_Click(object sender, EventArgs e)
            {
                // Intenta pasar de el numero a int
                int num = 10;

                // El TryParse intenta convertir el valor aun numero
                bool res = int.TryParse(txtDato.Text, out num);

                // Limpiar el Listbox
                lstTabla.Items.Clear();
                // Si se convirtio a num el valor del textbox ejecuta la recursidad
                if (res)
                    Tabla(num, +1);
            }

    Yo lo resolvi de esta manera

    Gracias

    martes, 6 de diciembre de 2016 16:19