方法1:使用 pow() 函数(适用于浮点数运算)
n 是变量,需要在运行时计算 (10^n),可以使用 <math.h> 库中的 pow() 函数。
注意:pow() 返回 double 类型,适用于浮点数运算。

(图片来源网络,侵删)
#include <stdio.h>
#include <math.h>
int main() {
int n = 3;
double result = pow(10, n); // 计算 10^3 = 1000.0
printf("10^%d = %.0f\n", n, result); // 输出: 10^3 = 1000
return 0;
}
编译时需链接数学库(Linux/macOS下用 -lm):
gcc program.c -o program -lm
方法2:使用 1e+n 科学计数法(适用于常量)
n 是已知的编译期常量(如 n=3),可以直接用科学计数法表示 (10^n):
double x = 1e3; // 10^3 = 1000.0 int y = 1000; // 直接写整数
适用场景:适合直接在代码中写常量,无需运行时计算。
方法3:使用循环计算(适用于整数幂)
n 是非负整数,且需要精确的整数结果(而非浮点数),可以用循环计算:

(图片来源网络,侵删)
#include <stdio.h>
long long powerOf10(int n) {
long long result = 1;
for (int i = 0; i < n; i++) {
result *= 10;
}
return result;
}
int main() {
int n = 5;
printf("10^%d = %lld\n", n, powerOf10(n)); // 输出: 10^5 = 100000
return 0;
}
注意:long long 类型可以表示更大的数(如 10^18),但超出范围会溢出。
方法4:使用宏定义(编译期常量)
n 是固定的小整数(如 n=3),可以用宏定义:
#include <stdio.h>
#define POWER_10_3 1000 // 10^3
int main() {
printf("10^3 = %d\n", POWER_10_3); // 输出: 10^3 = 1000
return 0;
}
适用场景:适用于已知的、较小的常量。
方法5:使用 exp10()(C11标准,更精确的10的幂)
C11标准引入了 exp10() 函数,专门用于计算 (10^n),比 pow(10, n) 更精确:

(图片来源网络,侵删)
#include <stdio.h>
#include <math.h>
int main() {
int n = 3;
double result = exp10(n); // 10^3 = 1000.0
printf("10^%d = %.0f\n", n, result);
return 0;
}
编译时需链接数学库(同 pow())。
| 方法 | 适用场景 | 示例 | 注意事项 |
|---|---|---|---|
pow(10, n) |
运行期浮点数计算 | pow(10, 3) |
需 -lm,返回 double |
1e+n |
编译期常量 | 1e3 |
仅适用于常量 |
| 循环计算 | 整数幂,精确结果 | for(i=0; i<n; i++) *= 10 |
可能溢出 |
| 宏定义 | 小整数常量 | #define POWER_10_3 1000 |
需预先定义 |
exp10(n) |
C11标准,更精确 | exp10(3) |
需 -lm,C11支持 |
根据你的需求选择最合适的方法!
