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...

13voto

leander Points 6363

Alors que pow( base, exp ) est une excellente suggestion, mais sachez qu'elle fonctionne généralement en virgule flottante.

Cela peut être ou non ce que vous voulez : sur certains systèmes, une simple boucle multipliant sur un accumulateur sera plus rapide pour les types entiers.

Et pour le carré spécifiquement, vous pourriez tout aussi bien multiplier les nombres vous-même, à virgule flottante ou entière ; ce n'est pas vraiment une diminution de la lisibilité (IMHO) et vous évitez la surcharge de performance d'un appel de fonction.

11voto

Agricola Points 309

Je n'ai pas assez de réputation pour commenter, mais si vous aimez travailler avec QT, ils ont leur propre version.

    #include <QtCore/qmath.h>
    qPow(x, y); // returns x raised to the y power.

Ou si vous n'utilisez pas QT, cmath a fondamentalement la même chose.

    #include <cmath>
    double x = 5, y = 7; //As an example, 5 ^ 7 = 78125
    pow(x, y); //Should return this: 78125

11voto

HaSeeB MiR Points 362

Si vous voulez traiter avec base_2 seulement dans ce cas, je recommande d'utiliser l'opérateur gauche << au lieu de bibliothèque de mathématiques .

exemple de code :

int exp = 16;
for(int base_2 = 1; base_2 < (1 << exp); (base_2 <<= 1)){
std::cout << base_2 << std::endl;
}

sortie de l'échantillon :

1   2   4   8   16  32  64  128  256  512  1024  2048  4096  8192  16384  32768

6voto

jayarjo Points 119

C'est pow ou powf dans <math.h>

Il n'existe pas d'opérateur infixe spécial comme en Visual Basic ou en Python.

6voto

Filza Naser Points 85
#include <iostream>
#include <conio.h>

using namespace std;

double raiseToPow(double ,int) //raiseToPow variable of type double which takes arguments (double, int)

void main()
{
    double x; //initializing the variable x and i 
    int i;
    cout<<"please enter the number"; 
    cin>>x;
    cout<<"plese enter the integer power that you want this number raised to";
    cin>>i;
    cout<<x<<"raise to power"<<i<<"is equal to"<<raiseToPow(x,i);
}

//définition de la fonction raiseToPower

double raiseToPow(double x, int power)
{
    double result;
    int i;
    result =1.0;
    for (i=1, i<=power;i++)
    {
        result = result*x;
    }
    return(result);
}

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