c++ - sans - python puissance d un nombre




Quelle est la fonction C++ pour élever un nombre à une puissance? (9)

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

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

Et pour le carré en particulier, vous pourriez tout aussi bien multiplier les nombres ensemble, en virgule flottante ou en nombre entier; ce n'est pas vraiment une diminution de la lisibilité (IMHO) et vous évitez les frais généraux de performance d'un appel de fonction.

Comment puis-je élever un nombre à un pouvoir?

2^1

2^2

2^3

etc...


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

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


J'utilise la bibliothèque cmath ou math.h pour utiliser les fonctions de la bibliothèque pow() qui s'occupe des puissances

#include<iostream>
#include<cmath>

int main()
{
    double number,power, result;
    cout<<"\nEnter the number to raise to power: ";
    cin>>number;
    cout<<"\nEnter the power to raise to: ";
    cin>>power;

    result = pow(number,power);

    cout<<"\n"<< number <<"^"<< power<<" = "<< result;

    return 0;
}

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

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

Incluez juste math.h et vous êtes tous ensemble.


Vous devriez être capable d'utiliser les méthodes C normales en maths.

#include <cmath>

pow(2,3)

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

Est-ce ce que vous demandez?

Sujal


std::pow dans l'en-tête <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, vous ne pouvez pas faire juste

pow(2, N)

avec N étant un int, car il ne sait pas lequel des float, double ou long double version il devrait prendre, et vous auriez une erreur d'ambiguïté. Tous les trois auraient besoin d'une conversion de int à virgule flottante, et tous les trois sont également coûteux!

Pour cela, assurez-vous d'avoir tapé le premier argument de sorte qu'il corresponde parfaitement à l'un de ces trois. J'utilise habituellement le double

pow(2.0, N)

De la merde d'avocat de moi encore. Je suis souvent tombé moi-même dans ce piège, alors je vais vous en avertir.


#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);
}

pow(2.0,1.0)
pow(2.0,2.0)
pow(2.0,3.0)

Votre titre de question original est trompeur. Pour simplement carré , utilisez 2*2 .







math