숫자를 거듭 제곱하는 C ++ 함수는 무엇입니까?
숫자를 거듭 제곱해야합니까?
2^1
2^2
2^3
기타 ...
cmath 라이브러리의 pow () 자세한 내용은 여기를 참조하십시오 . #include<cmath>
파일 맨 위에 놓는 것을 잊지 않고 .
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)
어떤 변호사는 또 다시 허약 해 나는 종종이 함정에 빠졌지 만 경고 할 것입니다.
C ++에서 "^"연산자는 비트 단위 OR입니다. 권력을 높이는 데는 효과가 없습니다. x << n은 x에 2 n 횟수를 곱하는 것과 같으며 2를 거듭 제곱 할 때만 사용할 수있는 이진수의 요드 시프트. POW 함수는 일반적으로 작동하는 수학 함수입니다.
수학에서 일반적인 C 방법을 사용할 수 있습니다.
#include <cmath>
pow(2,3)
유닉스 계열 시스템이라면 man cmath
그게 당신이 설치할 것입니까?
수잘
pow (x, y) 함수를 사용 하십시오 : 여기를 참조하십시오
math.h 만 포함하면 모든 준비가 완료됩니다.
하지만 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 또는 powf in <math.h>
Visual Basic 또는 Python과 같은 특수 접두사 연산자는 없습니다.
많은 답변이 제안 pow()
되거나 유사한 대안 또는 자체 구현 을 제안 했습니다. 그러나 귀하의 질문에 대한 예 ( 2^1
, 2^2
및 2^3
)가 주어지면 2
정수 거듭 제곱으로 만 올릴 필요가 있는지 추측합니다 . 이 경우을 사용 1 << n
하는 것이 좋습니다 2^n
.
pow(2.0,1.0)
pow(2.0,2.0)
pow(2.0,3.0)
원래 질문 제목이 오해의 소지가 있습니다. 그냥 정사각형 으로하려면 2*2
.
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
https://stackoverflow.com/a/2940800/319728에 표시되고 답변 된 것처럼 의 사용은 y 배 pow(x,y)
보다 덜 효율적 입니다.x*x*x
따라서 효율성을 사용하려는 경우 x*x*x
.
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;
}
먼저 추가 #include <cmath>
한 다음 pow
예를 들어 코드에서 methode를 사용할 수 있습니다 .
pow(3.5, 3);
이는 3.5 인 염기 와 3 이고 EXP
참고 URL : https://stackoverflow.com/questions/845912/what-is-the-c-function-to-raise-a-number-to-a-power
'IT' 카테고리의 다른 글
문서 디렉토리에서 지정된 파일 삭제 (0) | 2020.07.30 |
---|---|
React redux의 감속기에서 배열에 요소를 추가 할 수 있습니까? (0) | 2020.07.30 |
JavaScript의 Math.random은 무작위입니까? (0) | 2020.07.30 |
dplyr을 사용하여이를 행 제거 (0) | 2020.07.30 |
Node Multer 선택 필드 (0) | 2020.07.30 |