Existe-t-il une fonction carré(x) en C ?

Résolu
geekat Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,
Il en existe pour racine carrée c'est le sqrt, mais pour le carré je n'en ai pas trouvé.
Je voudrais écrire cette fonction :

Mon code :
#include <stdlib.h>    
#include <stdio.h>    
#include <math.h>
int main(int argc, char *argv[])
{
for (i=0; i<=n; i++)
    int x = sqrt(x);           // Je ne sais pas comment continuer
}

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    il y a
    double pow(double x, double y)
    pour élever x à la puissance y
    6
    1. geekat Messages postés 223 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci, je la connaissais pas!
      0
    2. jisisv Messages postés 3678 Statut Modérateur 936
       
      Il n'y a a AUCUN intérêt à utiliser pow et Cie pour un carré.
      Il est nettement plus efficace d'utiliser le produit de l'entité (de préférence une variable simple) par elle-même. En général toutes les élévations à des puissances entières se résolvent en une boucle simple et des carrés, cela grâce à Horner.
      L'utilisation de pow dans ce contexte est inefficace.
      A la limite on peut se définir une macro pour le carré:
      #define square(a)  (a)*(a)

      ou pour le cube éventuellement..

      Laissons à pow([lf] leur usage: élévation d'une entité à une puissance non entière et différente de 1/2 (auquel cas sqrt sera plus efficace)
      2