用函数模板求x的n次幂
时间: 2024-05-01 08:20:03 浏览: 53
可以使用以下函数模板来求解x的n次幂:
```c++
template<typename T>
T power(T x, int n) {
T res = 1;
while (n) {
if (n & 1) res *= x;
x *= x;
n >>= 1;
}
return res;
}
```
该函数接受两个参数:底数x和指数n,返回x的n次幂。在函数内部,我们使用了一个while循环来计算幂,其中我们使用了按位与运算符&来检查n的二进制表示中最低位是否为1。如果是1,则将底数x乘以结果res,否则将底数x自乘。然后将指数n右移1位,以便在下一次迭代中计算下一个最低位。最后,当n为0时,我们返回结果res。
使用该函数模板的示例如下:
```c++
#include <iostream>
using namespace std;
template<typename T>
T power(T x, int n) {
T res = 1;
while (n) {
if (n & 1) res *= x;
x *= x;
n >>= 1;
}
return res;
}
int main() {
cout << power(2, 10) << endl; // 输出1024
cout << power(3.14, 2) << endl; // 输出9.8596
return 0;
}
```
阅读全文