Come si alza un numero a una potenza?Qual è la funzione C++ per elevare un numero a una potenza?
2^1
2^2
2^3
ecc ...
Come si alza un numero a una potenza?Qual è la funzione C++ per elevare un numero a una potenza?
2^1
2^2
2^3
ecc ...
pow() nella libreria cmath. Maggiori informazioni here. Non dimenticare di includere #include nella parte superiore.
hell, yes .. è davvero così semplice .. –
Utilizzare il pow (x, y) la funzione: See Here
Basta includono math.h ed è tutto pronto.
E 'pow o powf in <math.h>
Non v'è alcun operatore infisso speciale come in Visual Basic o Python
powf() è una funzione C99 che non è in C++. – newacct
pow(2.0,1.0)
pow(2.0,2.0)
pow(2.0,3.0)
Il titolo domanda iniziale è fuorviante. A solo square, utilizzare 2*2
.
Dovresti essere in grado di utilizzare i normali metodi C in matematica.
#include <cmath>
pow(2,3)
se siete su un sistema unix-like, man cmath
E 'questo quello che stai chiedendo?
Sujal
Mentre pow(base, exp)
è un ottimo suggerimento, essere consapevoli che tipicamente funziona in virgola mobile.
Questo può o non può essere quello che vuoi: su alcuni sistemi un ciclo semplice che si moltiplica su un accumulatore sarà più veloce per i tipi interi.
E per il quadrato in modo specifico, si potrebbe anche solo moltiplicare insieme i numeri, virgola mobile o intero; non è in realtà una diminuzione della leggibilità (IMHO) e si evita il sovraccarico delle prestazioni di una chiamata di funzione.
E sì, questo potrebbe rientrare nella categoria "ottimizzazione prematura", ma trovo sempre utile essere consapevoli di cose come questa - specialmente se devi programmare in ambienti con risorse limitate. – leander
std::pow
nell'intestazione <cmath>
ha questi sovraccarichi:
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);
Ora non si può solo fare
pow(2, N)
con N è un int, perché non sa quale di galleggiante, la doppia o la doppia versione lunga dovrebbe richiedere e si otterrebbe un errore di ambiguità. Tutti e tre avrebbero bisogno di una conversione da int a virgola mobile, e tutti e tre sono ugualmente costosi!
Pertanto, assicurarsi di avere il primo argomento digitato in modo che corrisponda perfettamente a uno di questi tre. Io di solito uso double
pow(2.0, N)
qualche avvocato merda da me ancora una volta. Sono spesso caduto in questa trappola, quindi ti avverto.
'int N; pow (2.0, N) 'sarebbe ancora ambiguo: ' potrebbe essere 'pow (double, int)' o 'pow (double, double)' ': -/→ cast – Marvin
@marvin mi raccomando di leggere la mia risposta prima di aggiungere un commento. ho spiegato che non dà un'ambiguità. –
Mi raccomando di leggere il mio commento prima di aggiungere un commento. ;-) Ho spiegato che dà un'ambiguità. (Compilatore di 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);
}
// definizione della funzione 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);
}
La tua risposta dovrebbe contenere una spiegazione del tuo codice e una descrizione di come risolve il problema. – AbcAeffchen
In C++ l'operatore "^" è un OR bit a bit. Non funziona per elevare a un potere. Lo x < < n è uno spostamento a sinistra del numero binario che equivale a moltiplicare x per 2 n numero di volte e che può essere utilizzato solo quando si alza 2 a una potenza. La funzione POW è una funzione matematica che funzionerà genericamente.
Non ho abbastanza reputazione per commentare, ma se ti piace lavorare con QT, hanno la loro versione.
#include <QtCore/qmath.h>
qPow(x, y); // returns x raised to the y power.
Oppure se non si utilizza QT, cmath ha praticamente la stessa cosa.
#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
noti che l'utilizzo di pow (x, y) è meno efficiente di x x x y volte come illustrato e risposta qui https://stackoverflow.com/a/2940800/319728.
Quindi, se stai andando per l'efficienza utilizzare x x x.
Sto usando la libreria cmath
o math.h
al fine di utilizzare le funzioni di libreria pow()
che si prende cura dei poteri
#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;
}
Questa risposta era già stata fornita anni fa, non è vero? –
Ma come eseguire senza utilizzare la funzione pow() manualmente. – Sushant
il titolo era fuorviante. Riguarda i poteri in generale, non solo la quadratura. L'ho modificato e risolto. – Zifre
Se si tratta di poteri di 2 in generale, usare <<. –
Sì, funzionerà per * interi *. . . – imallett