Problema Programa que eleva un numero a una potencia

Iniciado por prometheus48, 4 Enero 2012, 23:03 PM

0 Miembros y 1 Visitante están viendo este tema.

prometheus48

Hola,

Quería hacer un programa que eleva un numero cualquiera a cualquier potencia.
Se que se puede hacer incluyendo la libreria math.h y usando la funcion pow.

Sé que también se puede hacer con un bucle, haciendo que multiplique ese numero tantas veces sea la variable X ...

Pero me preguntaba si hay alguna expresión matemática para hacerlo, por ejemplo,
tipo ( a*b ) + ( x% ( c* ( a/2 ) ) )....

Estuve pensando todo el día ( ayer ), pero no se me ocurrió nada, se lo pregunte a varios amigos y me dijeron que era imposible, pero nada lo es ¿no?.


Salu2!
"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free

BlackZeroX

The Dark Shadow is my passion.

prometheus48

Gracias por la respuesta.

Pero no dice nada de una expresión, explica pero no pone una funcion, o al menos
eso creo.

Intentare leerlo otra vez.

Salu2!
"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free

BlackZeroX

mmm...



Almenos que uses ASM (Quizas)... pero el procesador va a hacer algo similar...

Dulces Lunas!¡.
The Dark Shadow is my passion.

Oblivi0n

Date cuenta que la potencia es el numero de veces que se multiplica el numero. Es decir  24 = 2 x 2 x 2 x 2

Esto, en C al menso, es imposible de hacer con una sola expresión.

La manera sencilla seria un bucle for tal que:


int sum = 1;
for(int n = 0;n<potencia;n++)
{
    sum *= base
}



Donde potencia seria el termino "b" y base , la base ( Ab )

Saludos.

LearningSpanishProgrammer

#5
Puede limitar el problema:

Solo usando: 2

Entonces: m^n => m << (n - 1)
Pero "n" debes ser: n >= 1

Puedes hacer mucho mucho mas! Pero no voy a hablar, buena suerte!

Protip:
32 = 2^5
32^2 = (2^5)^2 = 2^10
Estoy aprendiendo español, y tu estas aprendiendo programación

prometheus48

Me podrias explicar eso último que has hecho ahí?

Salu2!
"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free

xiruko

Tan solo ha escrito una propiedad de las potencias:

(a^b)^c=a^(b*c)

En el ejemplo que ha escrito el:

32=2^5, por lo que 32^2=(2^5)^2=2^(5*2)

BlackZeroX

Leete la pagina que te puse y lo entenderas... tambien lee algo sobre operaciones Binarias, igual y consigues algo...

Dulces Lunas!¡.
The Dark Shadow is my passion.