<math.h>| 函數 | 原型 | 說明 | 示例 |
|---|---|---|---|
| pow | double pow(double x, double y) | 計算 xy | pow(2, 3) → 8 |
| sqrt | double sqrt(double x) | 平方根(x ≥ 0) | sqrt(9) → 3 |
| cbrt | double cbrt(double x) | 立方根(C99) | cbrt(27) → 3 |
| hypot | double hypot(double x, double y) | √(x²+y²) 避免溢出 | hypot(3, 4) → 5 |
n 次方根 = pow(x, 1.0/n)
double root10 = pow(1024, 1.0/10); // 1024 的 10 次方根 = 2
-lm 參數,否則鏈接報錯 undefined reference to 'pow'sqrt(-1) 返回 NaN 並設置 errno = EDOM,生產代碼必須檢查輸入fabs(a-b) < epsilonpow 函數調用開銷long long ipow(long long base, unsigned exp) {
long long res = 1;
while (exp) {
if (exp & 1) res *= base;
base *= base;
exp >>= 1;
}
return res;
}
二進制分解法,O(log n) 時間,無浮點誤差,適配嵌入式無 FPU 場景。