Подтвердить что ты не робот

Что такое функция С++ для повышения числа?

Как поднять число до мощности?

2^1

2^2

2^3

и т.д...

4b9b3361

Ответ 1

pow() в cmath библиотеке. Больше информации здесь. Не забудьте поставить #include<cmath> вверху файла.

Ответ 2

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 в число с плавающей запятой, и все три одинаково дороги!

Поэтому обязательно наберите первый аргумент, чтобы он идеально совпадал с одним из этих трех. Я обычно использую double

pow(2.0, N)

Какой-то адвокат дерьмо от меня снова. Я сам часто попадал в эту ловушку, поэтому собираюсь предупредить вас об этом.

Ответ 3

В С++ оператор "^" является поразрядным ИЛИ. Он не работает для повышения мощности. Х < n - левый сдвиг двоичного числа, который совпадает с умножением x на 2 n раз и может использоваться только при повышении 2 до мощности. Функция POW является математической функцией, которая будет работать в целом.

Ответ 4

Используйте функцию pow (x, y): См. здесь

Просто включите math.h, и вы все настроены.

Ответ 5

Вы должны иметь возможность использовать обычные методы C в математике.

#include <cmath>

pow(2,3)

если вы используете unix-подобную систему, man cmath

Это то, о чем вы спрашиваете?

Sujal

Ответ 6

Хотя pow( base, exp ) является отличным предложением, имейте в виду, что он обычно работает с плавающей точкой.

Это может быть или не быть тем, что вы хотите: в некоторых системах простой цикл, умножающийся на накопитель, будет быстрее для целых типов.

И для квадрата, вы можете просто умножить числа вместе самостоятельно, с плавающей точкой или целое число; это действительно не уменьшает читаемость (IMHO), и вы избегаете служебных расходов функции вызова функции.

Ответ 7

У меня недостаточно репутации для комментариев, но если вам нравится работать с 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

Ответ 8

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

Ответ 9

Это значение pow или powf в <math.h>

В Visual Basic или Python нет специального инфиксного оператора

Ответ 10

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

Ваш исходный заголовок вопроса вводит в заблуждение. Для просто квадрата используйте 2*2.

Ответ 11

Во многих ответах предложены pow() или аналогичные альтернативы или их собственные реализации. Однако, учитывая примеры (2^1, 2^2 и 2^3) в вашем вопросе, я бы догадался, нужно ли вам повышать только 2 до целой степени. Если это так, я бы предложил вам использовать 1 << n для 2^n.

Ответ 12

если вы хотите иметь дело только с 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

Ответ 13

Обратите внимание, что использование pow(x,y) менее эффективно, чем x*x*x y раз, как показано здесь и дан ответ здесь fooobar.com/questions/60726/....

Так что, если вы хотите повысить эффективность, используйте x*x*x.

Ответ 14

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

Ответ 15

Я использую библиотеку 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;
}

Ответ 16

Сначала добавьте #include <cmath> затем вы можете использовать метод pow в вашем коде, например:

pow(3.5, 3);

Какой 3,5 является базовым, а 3 - эксп