用while语句求x的n次方
时间: 2024-10-20 22:18:27 浏览: 26
当你想使用`while`循环来计算一个数`x`的幂次`n`时,你可以采用以下算法。这里我们假设`n`是非负整数,因为负数的幂次通常定义为该正数的倒数的绝对值的相反数。
```cpp
#include <iostream>
int power(int x, int n) {
int result = 1;
while (n != 0) { // 当n不等于0时,继续循环
if (n % 2 == 1) { // 如果n是奇数
result *= x; // 将result乘以x
}
x *= x; // 将x自乘
n /= 2; // n除以2,相当于每次循环n减少一半(移位操作)
}
return result;
}
int main() {
int base, exponent;
std::cout << "Enter the base number: ";
std::cin >> base;
std::cout << "Enter the exponent: ";
std::cin >> exponent;
int result = power(base, exponent);
std::cout << "The result of " << base << "^" << exponent << " is: " << result << std::endl;
return 0;
}
```
在这个代码里,我们利用了指数运算的一个性质:如果n是偶数,那么x^n就是x*x^(n/2),而如果n是奇数,则是先计算x^(n-1),再乘以x。因此,我们只需检查n是否为奇数来进行这种操作,同时n不断右移一位(即除以2),直到变为0。
阅读全文