Как поднять число до мощности?Что такое функция C++ для подведения числа к мощности?
2^1
2^2
2^3
и т.д ...
Как поднять число до мощности?Что такое функция C++ для подведения числа к мощности?
2^1
2^2
2^3
и т.д ...
пау() в библиотеке CMATH. Больше информации here. Не забудьте указать #include в верхней части.
ад, да .. это действительно так просто. –
Используйте Pow (х, у) функция: See Here
Просто включите math.h и вы все сделали.
Это пау или powf в <math.h>
Там нет специального оператора инфикс как в Visual Basic или Python
powf() - это функция C99, которая не находится на C++. – newacct
pow(2.0,1.0)
pow(2.0,2.0)
pow(2.0,3.0)
Ваш оригинальный вопрос название вводит в заблуждение. Чтобы просто площадь, используйте 2*2
.
Вы должны иметь возможность использовать обычные методы С в математике.
#include <cmath>
pow(2,3)
если вы на Unix-подобных системах, man cmath
Это то, что вы спрашиваете?
Sujal
Хотя pow(base, exp)
является большое предложение, имейте в виду, что, как правило, работает в плавающей точкой.
Это может быть или не быть тем, чего вы хотите: на некоторых системах простой цикл, умножающийся на аккумулятор, будет быстрее для целых типов.
И, в частности, для квадратов вы можете просто умножить числа вместе самостоятельно, с плавающей точкой или целое число; это действительно не снижение читаемости (IMHO), и вы избегаете накладных расходов на функционирование вызова функции.
И да, это может попасть в категорию «преждевременной оптимизации», но я всегда считаю, что хорошо знать такие вещи, особенно если вам нужно программировать в средах с ограниченными ресурсами. – leander
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 в плавающую точку, и все три одинаково дорогостоящие!
Для этого обязательно должен быть введен первый аргумент, чтобы он соответствовал одному из этих трех. Я обычно использую double
pow(2.0, N)
Некоторые адвокат дерьмо от меня снова. Я часто попадал в эту ловушку, поэтому я собираюсь предупредить вас об этом.
'int N; pow (2.0, N) 'все равно будет неоднозначным: ' может быть 'pow (double, int)' или 'pow (double, double)'::// cast – Marvin
@marvin Я рекомендую прочитать мой ответ перед добавлением комментария. Я объяснил, что это не дает двусмысленности. –
Я рекомендую прочитать мой комментарий перед добавлением комментария. ;-) Я объяснил, что это дает двусмысленность. (Компилятор 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);
}
// определение функции 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);
}
Ваш ответ должен содержать пояснение вашего кода и описание того, как он решает проблему. – AbcAeffchen
В C++ оператор "^" является побитовое ИЛИ. Он не работает для повышения мощности. X < < n - левый сдвиг двоичного числа, который совпадает с умножением x на 2 n раз и может использоваться только при повышении 2 до мощности. Функция POW является математической функцией, которая будет работать в целом.
У меня недостаточно репутации, чтобы комментировать, но если вам нравится работать с 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
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
Обратите внимание, что использование мощно (х, у) является менее эффективным, чем х х х у раза, как показано и здесь ответ https://stackoverflow.com/a/2940800/319728.
Итак, если вы собираетесь использовать эффективность x x x.
Я использую библиотеку 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;
}
Этот ответ уже был представлен много лет назад, не так ли? –
Но как работать без использования функции pow() вручную. – Sushant
название было ввести в заблуждение. Речь идет о силах в целом, а не о квадрате. Я его отредактировал и исправил. – Zifre
Если речь идет о полномочиях 2 в целом, используйте <<. –
Да, это будет работать для * целых чисел *. , , – imallett