¿Existe una función cuadrado(x) en C?

Resuelto
geekat Mensajes publicados 223 Fecha de registro   Estado Membre Última intervención   -  
jisisv Mensajes publicados 3678 Estado Modérateur -
Hola,
Existen para la raíz cuadrada que es sqrt, pero no he encontrado para el cuadrado.
Quiero escribir esta función:
Mi código:
#include <stdlib.h> #include <stdio.h> #include <math.h> int main(int argc, char *argv[]) { for (i=0; i<=n; i++) int x = pow(x, 2); // No sé cómo continuar }

3 réponses

dubcek Mensajes publicados 18814 Fecha de registro   Estado Contributeur Última intervención   5 655
 
hola
hay
double pow(double x, double y)
para elevar x a la potencia y
6
geekat Mensajes publicados 223 Fecha de registro   Estado Membre Última intervención  
 
¡Gracias, no la conocía!
0
jisisv Mensajes publicados 3678 Estado Modérateur 936
 
No hay NINGÚN interés en utilizar pow y Cía para un cuadrado.
Es mucho más eficiente usar el producto de la entidad (preferentemente una variable simple) por sí misma. En general, todas las elevaciones a potencias enteras se resuelven en un bucle simple y cuadrados, gracias a Horner.
El uso de pow en este contexto es ineficiente.
A lo sumo, se puede definir una macro para el cuadrado:
#define square(a) (a)*(a)

o para el cubo, eventualmente...

Dejemos a pow([lf] su uso: elevación de una entidad a una potencia no entera y diferente de 1/2 (en cuyo caso sqrt será más eficiente).
2