當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ Power用法及代碼示例


給定兩個數字的底數和指數,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)



相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Power Function in C/C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。