Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]


#include <iostream>

using namespace std;

long double pow (double x, unsigned long n);

int main() //(int argc, char *argv[])
{
    cout << pow(5.2,8) << endl;
    cin.get();
    return 1;
}

long double pow (double x, unsigned long n)
{
    long double p;
    for ( p=1 ; n>0 ; --n )
        p *= x;
    return p;
}



Temibles Lunas!¡.
.
Título: Re: Alternativa a pow? [c]
Publicado por: ghastlyX en 10 Diciembre 2010, 15:07 PM
Cita de: mini_nauta 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
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.

#include <stdio.h>

int eleva(int base, int exp) {
    if (exp == 0) return 1;
    int res = eleva(base, exp/2);
    res *= res;
    if (exp%2 == 1) res *= base;
    return res;
}

int main() {
    int base, exp;
    scanf("%d %d", &base, &exp);
    printf("%d\n", eleva(base, exp));
}
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 ).