Comment puis-je augmenter un nombre à une puissance?Quelle est la fonction C++ pour élever un nombre à une puissance?
2^1
2^2
2^3
etc ...
Comment puis-je augmenter un nombre à une puissance?Quelle est la fonction C++ pour élever un nombre à une puissance?
2^1
2^2
2^3
etc ...
pow() dans la bibliothèque cmath. Plus d'infos here. N'oubliez pas d'avoir le #include en haut.
hell, yes .. c'est vraiment aussi simple .. –
Utilisez le pow (x, y) fonction: See Here
comprennent Juste math.h et vous êtes tous ensemble.
Il est prisonnier de guerre ou powf dans <math.h>
Il n'y a pas d'opérateur infixe spécial comme dans Visual Basic ou Python
powf() est une fonction C99 qui n'est pas en C++. – newacct
pow(2.0,1.0)
pow(2.0,2.0)
pow(2.0,3.0)
Votre titre de la question originale est trompeuse. Pour seulement carré, utilisez 2*2
.
Vous devriez pouvoir utiliser les méthodes C normales en mathématique.
#include <cmath>
pow(2,3)
si vous êtes sur un système unix, man cmath
Est-ce que vous demandez?
Sujal
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 multipliant 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.
Et oui, cela peut tomber dans la catégorie "optimisation prématurée", mais je trouve toujours bon d'être au courant de choses comme ça - surtout si vous devez programmer dans des environnements à ressources limitées. – leander
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 le faire
pow(2, N)
N étant un entier, car il ne sait pas quel flotteur, double ou double version longue, il devrait prendre, et vous obtiendrez 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! Par conséquent, veillez à saisir le premier argument afin qu'il corresponde parfaitement à l'un de ces trois arguments. J'utilise habituellement double
pow(2.0, N)
Une certaine merde d'avocat de moi encore. Je suis souvent tombé moi-même dans ce piège, alors je vais vous en avertir.
'int N; pow (2.0, N) 'serait toujours ambigu: ' pourrait être 'pow (double, int)' ou 'pow (double, double)' ': -/→ cast – Marvin
@marvin je recommande de lire ma réponse avant d'ajouter un commentaire J'ai expliqué que cela ne donne pas d'ambiguïté. –
Je recommande de lire mon commentaire avant d'ajouter un commentaire. ;-) J'ai expliqué que cela DONNE une ambiguïté. (Compilateur de VS2008) – Marvin
#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);
}
Votre réponse doit contenir une explication de votre code et une description de la façon dont il résout le problème. – AbcAeffchen
En C++ l'opérateur "^" est une opération de bits OR. Cela ne fonctionne pas pour élever à un pouvoir. Le x < < n est un décalage vers la gauche du nombre binaire qui est le même que multiplier x par 2 n nombre de fois et qui ne peut être utilisé lors de l'augmentation de 2 à une puissance. La fonction POW est une fonction mathématique qui fonctionnera de manière générique.
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
int power (int i, int ow) // works only for ow >= 1
{ // but does not require <cmath> library!=)
if (ow > 1)
{
i = i * power (i, ow - 1);
}
return i;
}
cout << power(6,7); //you can enter variables here
Notez que l'utilisation de pow (x, y) est moins efficace que x x x y fois comme indiqué et a répondu ici https://stackoverflow.com/a/2940800/319728.
Donc, si vous allez pour une utilisation efficace x x x.
J'utilise la bibliothèque cmath
ou math.h
afin d'utiliser les fonctions de la bibliothèque pow()
qui prend soin des pouvoirs
#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;
}
Cette réponse a déjà été fournie il y a des années, n'est-ce pas? –
Mais comment effectuer sans utiliser la fonction pow() manuellement. – Sushant
Le titre est trompeur. Cela concerne les pouvoirs en général, pas seulement la quadrature. Je l'ai édité et l'ai réparé. – Zifre
S'il s'agit de puissances de 2 en général, utilisez <<. –
Oui, cela fonctionnera pour * entiers *. . . – imallett