15 ответов:
pow () в библиотеке cmath. Подробнее здесь. Не забудьте иметь #include в верхней части.
std::powна<cmath>заголовок имеет следующие перегрузки: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);теперь вы не можете просто сделать
pow(2, N)С N является int, потому что он не знает, какой из float, double или long double версии он должен принять, и вы получите ошибку неоднозначности. Всем трем потребуется преобразование из int в floating point, и все три одинаково дороги!
поэтому обязательно введите первый аргумент, чтобы он идеально соответствовал одному из этих трех. Я обычно используют
doublepow(2.0, N)опять какая-то адвокатская хрень от меня. Я сам часто попадал в эту ловушку, поэтому хочу предупредить вас об этом.
используйте функцию pow(x,y):Посмотреть Здесь
просто включить математику.h И все готово.
вы должны быть в состоянии использовать обычные методы C в математике.
#include <cmath>
pow(2,3)Если вы находитесь на Unix-подобной системе,
man cmathты об этом спрашиваешь?
Sujal
во время
pow( base, exp )Это отличное предложение, имейте в виду, что он обычно работает с плавающей точкой.Это может быть или не быть то, что вы хотите: на некоторых системах простой цикл умножения на аккумуляторе будет быстрее для целых типов.
и для квадрата в частности, вы можете просто умножить числа вместе сами, с плавающей запятой или целым числом; на самом деле это не снижение читаемости (IMHO), и вы избегаете накладных расходов на производительность функции вызов.
у меня недостаточно репутации, чтобы комментировать, но если вам нравится работать с QT, у них есть своя версия.
#include <QtCore/qmath.h> qPow(x, y); // returns x raised to the y power.или если вы не используете Qt, cmath имеет в основном то же самое.
#include <cmath> double x = 5, y = 7; //As an example, 5 ^ 7 = 78125 pow(x, y); //Should return this: 78125
#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); }/ / определение функции 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)ваше оригинальное название вопроса вводит в заблуждение. Чтобы просто площадью используйте
2*2.
обратите внимание, что использование pow (x,y) менее эффективно, чем xxx Y раз, как показано и ответил Здесь https://stackoverflow.com/a/2940800/319728.
Так что если вы собираетесь для эффективности использования xx x.
многие ответы предложили
pow()или аналогичные альтернативы или их собственные реализации. Однако, учитывая примеры (2^1,2^2и2^3) в вашем вопросе я бы предположил, Нужно ли вам только поднять2в целую степень. Если это так, я бы предложил вам использовать1 << nна2^n.
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
Я использую библиотеку
cmathилиmath.hчтобы использоватьpow()библиотечные функции, которые заботятся о полномочиях#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; }
Если вы хотите иметь дело с base_2 только после этого я рекомендую использовать оператор сдвига влево вместо математическая библиотека.
пример кода :
int exp = 16; for(int base_2 = 1; base_2 < (1 << exp); (base_2 <<= 1)){ std::cout << base_2 << std::endl; }пример вывода :
1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
Comments