178 votes

Quelle est la fonction C++ permettant d'élever un nombre à une puissance ?

Comment élever un nombre à une puissance ?

2^1

2^2

2^3

etc...

171voto

Joey Robert Points 2488

Pow() dans la bibliothèque cmath. Plus d'informations aquí . N'oubliez pas de mettre #include<cmath> en haut du fichier.

107voto

std::pow en el <cmath> a ces surcharges :

pow(float, float);
pow(float, int);
pow(double, double); // taken over from C
pow(double, int);
pow(long double, long double);
pow(long double, int);

Maintenant tu ne peux pas juste faire

pow(2, N)

avec N étant un int, parce qu'il ne sait pas lequel de float , double o long double version qu'il devrait prendre, et vous obtiendriez une erreur d'ambiguïté. Toutes les trois nécessiteraient une conversion de int en virgule flottante, et toutes les trois sont aussi coûteuses !

Par conséquent, veillez à ce que le premier argument soit tapé de manière à correspondre parfaitement à l'un de ces trois arguments. J'utilise généralement double

pow(2.0, N)

Encore des conneries d'avocat de ma part. Je suis souvent tombé dans ce piège moi-même, alors je vais vous en avertir.

43voto

Cindy Points 401

En C++, l'opérateur "^" est un OU par bit. Il ne fonctionne pas pour élever à une puissance. L'opérateur x << n est un décalage vers la gauche du nombre binaire, ce qui revient à multiplier x par 2 n fois et ne peut être utilisé que pour élever 2 à une puissance. La fonction POW est une fonction mathématique qui fonctionne de manière générique.

16voto

Adam Haile Points 12576

Utilisez la fonction pow(x,y) : Voir ici

Il suffit d'inclure math.h et tout est prêt.

16voto

sujal Points 931

Vous devriez être en mesure d'utiliser les méthodes C normales en mathématiques.

#include <cmath>

pow(2,3)

si vous êtes sur un système de type Unix, man cmath

C'est ce que vous demandez ?

Sujal

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X