Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: flacc en 10 Diciembre 2010, 04:34 am



Título: Alternativa a pow? [c]
Publicado por: flacc en 10 Diciembre 2010, 04:34 am
Hola, como sabran o se imaginaran, soy adicionado a la informatica, y en el libro todavia no he visto la función pow, asi que me preguntaba si  "num ^ exp" seria  valido para calcular la potencia de algun numero. saludoss


Título: Re: Alternativa a pow? [c]
Publicado por: karmi en 10 Diciembre 2010, 04:37 am
no se mucho de programacion, pero no es valido, tienes que usar ejemplo..POW(2,4)


Título: Re: Alternativa a pow? [c]
Publicado por: netk0 en 10 Diciembre 2010, 04:47 am
¿5 elevado a la 10 ?

int var = 5 ** 10;


Título: Re: Alternativa a pow? [c]
Publicado por: flacc en 10 Diciembre 2010, 04:49 am
no sirve :-(


Título: Re: Alternativa a pow? [c]
Publicado por: netk0 en 10 Diciembre 2010, 05:00 am
ya fue hacelo con un for que recorra tantas veces (n potencia) ...


Título: Re: Alternativa a pow? [c]
Publicado por: Darioxhcx en 10 Diciembre 2010, 05:46 am
http://www.alegsa.com.ar/Notas/Otros/lista_comentarios.php?id=100&id_c=877

no tengo el compilador para probarlo ;/


Título: Re: Alternativa a pow? [c]
Publicado por: barrabass en 10 Diciembre 2010, 06:19 am
depende de lo que busques podes usar esto:

int pot(int,int);

int main(){
    pot(5,10);
   return 0;
}

int pot(int h,int p){
    if(p==0)return 1;
    int i,w;
    w=h;
    for(i=1;i<p;i++)
    h=h*w;
    return h;
}


Título: Re: Alternativa a pow? [c]
Publicado por: BlackZeroX en 10 Diciembre 2010, 07:28 am
.
Código
  1.  
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. long double pow (double x, unsigned long n);
  7.  
  8. int main() //(int argc, char *argv[])
  9. {
  10.    cout << pow(5.2,8) << endl;
  11.    cin.get();
  12.    return 1;
  13. }
  14.  
  15. long double pow (double x, unsigned long n)
  16. {
  17.    long double p;
  18.    for ( p=1 ; n>0 ; --n )
  19.        p *= x;
  20.    return p;
  21. }
  22.  
  23.  

Temibles Lunas!¡.
.


Título: Re: Alternativa a pow? [c]
Publicado por: ghastlyX en 10 Diciembre 2010, 15:07 pm
Hola, como sabran o se imaginaran, soy adicionado a la informatica, y en el libro todavia no he visto la función pow, asi que me preguntaba si  "num ^ exp" seria  valido para calcular la potencia de algun numero. saludoss
Ese operador es la XOR bit a bit. No hay un operador para calcular potencias en C, tienes que usar la función pow como ya te han dicho o hacerte una tú mismo.

Te dejo un código que calcula potencias usando Divide&Conquer con una complejidad de O(logn) (los que te han puesto son O(n)). Esto es útil sobretodo cuando se quieren calcular potencias muy grandes módulo un cierto número.

Código
  1. #include <stdio.h>
  2.  
  3. int eleva(int base, int exp) {
  4.    if (exp == 0) return 1;
  5.    int res = eleva(base, exp/2);
  6.    res *= res;
  7.    if (exp%2 == 1) res *= base;
  8.    return res;
  9. }
  10.  
  11. int main() {
  12.    int base, exp;
  13.    scanf("%d %d", &base, &exp);
  14.    printf("%d\n", eleva(base, exp));
  15. }


Título: Re: Alternativa a pow? [c]
Publicado por: flacc en 11 Diciembre 2010, 06:00 am
graciasya toy probando..saludoss


Título: Re: Alternativa a pow? [c]
Publicado por: pucheto en 11 Diciembre 2010, 15:25 pm
Ahi ghastlyX te canto la posta...
Si es para float o double, usa el pow de math.h q lo hace en un par de lineas de assembly ( creo q son 3 o 4 instrucciones nada mas, sin ningun ciclo ).