Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Mac en 12 de Agosto 2014, 04:03

Título: calcular potencia con recursividad java
Publicado por: Mac en 12 de Agosto 2014, 04:03
Hola comunidad de aprenderaprogramar estoy viendo como resuelvo este algoritmo en Java en el entorno Netbeans y no he podido a haber si me ayudad  como hacerlo elevándolo a la potencia! se los agradezco de antemano ...  :-[

Es lo siguiente :

He echo esta forma para calcular un numero factorial... Con el tema de Recursividad en Java ...  Pero el gran dilema de como hacerlo elevándolo a la potencia .. No lo he logrado  :-[ ... Por favor espero de su ayuda ! .. De antemano muchísimas Gracias ! 

Aquí les dejo el código calculándolo normal !

Código: [Seleccionar]
package factorialrecursividad;

import javax.swing.*;

public class FactorialRecursividad {

    public static void main(String[] args) {
        // TODO code application logic here

        int n;

        n = Integer.parseInt(JOptionPane.showInputDialog(" -- Señor Usuario Digite El Numero a Calcular el Factoril -- "));

        JOptionPane.showMessageDialog(null, "El Factorial Es" + factorial(n));

    }

    public static int factorial(int n) {
        {
            int resultado;

            if (n == 0) // caso base
            {
                resultado = 1;
            } else // caso general
            {
                resultado = n * factorial(n - 1);
            }
            return resultado;
        }
    }

}
Título: Re:Factorial Recursividad elevarlo a la potencia
Publicado por: Ogramar en 12 de Agosto 2014, 09:39
Hola, ¿a qué te refieres con elevándolo a la potencia? ¿Te refieres a resolver un factorial o a otro tipo de cálculo? Un factorial no se resuelve con potencias, no entiendo bien a qué te puedes referir.

Por ejemplo: factorial de 5 es 5*4*3*2*1 = 120

Pon un ejemplo de lo que quieres resolver para tratar de plantearlo entre todos. Salu2
Título: Re:Factorial Recursividad elevarlo a la potencia
Publicado por: Ogramar en 12 de Agosto 2014, 13:15
Estaba pensando... si te refieres al cálculo de una potencia de forma recursiva puedes verlo aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=525:concepto-y-definicion-de-clase-en-java-objetos-del-mundo-real-y-abstractos-ejemplos-y-ejercicio-cu00644b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Título: Re:Factorial Recursividad elevarlo a la potencia
Publicado por: Mac en 13 de Agosto 2014, 16:00
Ogramar Gracias por tu ayuda !!

Me refiero a que el algoritmo que tengo pueda calcular el numero  por ejemplo 5 elevado a la  2 ( AL CUADRADO ) o a la 3 ( AL CUBO )  como lo puedo colocar en el algoritmo que realice ?¿     ??? ???
Título: Re:Factorial Recursividad elevarlo a la potencia
Publicado por: Ogramar en 13 de Agosto 2014, 17:20
Está explicado en el enlace que te dejé anteriormente, en concreto el código para calcular una potencia con recursividad es este:

Código: [Seleccionar]
     public int potenciaConRecursion (int m, int n) {
        if (n==0) { return 1;
        } else  { return m * potenciaConRecursion (m, n-1); }
    } //Cierre del método

Si llamas al método como potenciaConRecursion (5, 2) te calculará 5 al cuadrado. Si le pasas potenciaConRecursion(5, 3) te calculará 5 al cubo, etc. de esa forma puedes calcular la potencia de cualquier número.

Título: Re:Factorial Recursividad elevarlo a la potencia
Publicado por: Mac en 14 de Agosto 2014, 06:28
Si como dices .. ya lo logre hacer ..  :D :D

Excelente tu ayuda !

Código: [Seleccionar]
package potencia;

import javax.swing.*;

public class Potencia {

    public static void main(String[] args) {
        // TODO code application logic here

        int n, m;

        n = Integer.parseInt(JOptionPane.showInputDialog(" -- Señor Usuario Digite El Numero a Calcular el Factorial -- "));

        m = Integer.parseInt(JOptionPane.showInputDialog(" -- Señor Usuario Digite El Numero a la Potencia -- "));

        JOptionPane.showMessageDialog(null, " El Factorial Es " + funcionp(n,m));
       


    }

    public static int funcionp(int m, int n) {

        if (n == 0) {

            return 1;
        }
       
        else {

           return m * funcionp(m, n - 1);

        }

    } //Cierre del método

}