給定兩個數字的底數和指數,C++ 或 C pow() 函數會查找 x 的 y 次方,即 x y。本質上在 C/C++ 中,指數值是使用 pow() 函數計算的。 pow() 函數用於計算 C/C++ 中數字的冪。它接受 double 作為輸入並返回 double 作為輸出。
我們必須在 C/C++ 中使用 #include <math.h> 才能在 C/C++ 程序中使用 pow() 函數。
pow()函數的語法
double pow (double x, double y);
pow()函數參數
該方法僅需要兩個參數:
- x:浮點基值
- y:浮點冪值
pow()函數返回值
- power 函數返回 x 的 y 次方浮點值 (坐標 )。
pow() 函數示例
Input: 2.0, 5.0 Output: 32.00 Explanation: pow(2.0, 5.0) executes 2.0 raised to the power 5.0, which equals 32 Input: 5.0, 2.0 Output: 25.00 Explanation: pow(5.0, 2.0) executes 5.0 raised to the power 2.0, which equals 25
C
// C program to illustrate
// power function
#include <math.h>
#include <stdio.h>
int main()
{
double x = 6.1, y = 4.8;
// Storing the answer in result.
double result = pow(x, y);
printf("%.2lf", result);
return 0;
}
C++
// C++ program to illustrate
// power function
#include <bits/stdc++.h>
using namespace std;
int main()
{
double x = 6.1, y = 4.8;
// Storing the answer in result.
double result = pow(x, y);
// printing the result upto 2
// decimal place
cout << fixed << setprecision(2) << result << endl;
return 0;
}
輸出
5882.79
時間複雜度:O(log(n))
輔助空間:O(1)
pow() 函數與整數的工作
pow() 函數以‘double’ 作為參數並返回‘double’ 值。此函數並不總是適用於整數。 pow(5, 2) 就是這樣的一個例子。當分配給整數時,它在某些編譯器上輸出 24,並且對於其他一些編譯器工作正常。但沒有對整數進行任何賦值的 pow(5, 2) 輸出為 25。
另一種方法是使用 round 函數將其分配給某種整數類型。
- 這是因為 52(即 25)可能會存儲為 24.9999999 或 25.0000000001,因為返回類型是 double。當分配給 int 時,25.0000000001 變為 25,但 24.9999999 將給出輸出 24。
- 為了克服這個問題並以整數格式輸出準確的答案,我們可以將 1e-9 或 0.000000001 添加到結果中並將其類型轉換為int例如,無論編譯器如何, (int)(pow(5, 2)+1e-9) 都會給出正確的答案(25,在上麵的示例中)。
示例 1:C/C++ 程序,演示帶有整數的 pow() 函數的行為。
C++
// C++ program to illustrate
// working with integers in
// power function
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
// Using typecasting for
// integer result
a = (int)(pow(5, 2) + 0.5);
b = round(pow(5,2));
cout << a << endl << b ;
return 0;
}
C
// C program to illustrate
// working with integers in
// power function
#include <math.h>
#include <stdio.h>
int main()
{
int a, b;
// Using typecasting for
// integer result
a = (int)(pow(5, 2) + 1e-9);
b = round(pow(5,2));
printf("%d \n%d", a, b);
return 0;
}
輸出
25 25
時間複雜度:O(log(n))
輔助空間:O(1)
相關用法
- C++ Power用法及代碼示例
- C++ Private和Protected的區別用法及代碼示例
- C++ cos()用法及代碼示例
- C++ sin()用法及代碼示例
- C++ asin()用法及代碼示例
- C++ atan()用法及代碼示例
- C++ atan2()用法及代碼示例
- C++ acos()用法及代碼示例
- C++ tan()用法及代碼示例
- C++ sinh()用法及代碼示例
- C++ ceil()用法及代碼示例
- C++ tanh()用法及代碼示例
- C++ fmod()用法及代碼示例
- C++ acosh()用法及代碼示例
- C++ asinh()用法及代碼示例
- C++ floor()用法及代碼示例
- C++ atanh()用法及代碼示例
- C++ log()用法及代碼示例
- C++ trunc()用法及代碼示例
- C++ round()用法及代碼示例
- C++ lround()用法及代碼示例
- C++ llround()用法及代碼示例
- C++ rint()用法及代碼示例
- C++ lrint()用法及代碼示例
- C++ log10()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Power Function in C/C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。