计算x的n次方。输入值保证结果在int整数范围内。 函数接口定义: int mypow ( int x,int n ); 其中 x 和 n 都是用户传入的参数。函数须返回 x 的n次方。
时间: 2024-05-10 17:17:14 浏览: 69
编程实现计算:1!+2!+3!+……+N!的值,要求定义并调用函数计算N!。
5星 · 资源好评率100%
可以使用快速幂算法来计算 x 的 n 次方,时间复杂度为 O(log n)。具体实现如下:
```
int mypow(int x, int n) {
if (n == 0) {
return 1;
}
long long res = 1;
long long base = x; // 注意这里要使用 long long 类型,避免溢出
if (n < 0) {
base = 1 / base;
n = -n;
}
while (n > 0) {
if (n % 2 == 1) {
res *= base;
}
base *= base;
n /= 2;
}
return (int)res; // 将结果强制转换为 int 类型
}
```
需要注意几个问题:
1. 当 n 为负数时,需要先将 base 取倒数,然后将 n 变为正数。
2. 在计算过程中,需要使用 long long 类型存储中间结果,避免溢出。
3. 最后返回结果时,需要将 long long 类型的结果强制转换为 int 类型。
阅读全文