根据输入的整数x和n,利用函数fact实现求x的n次方代码 c语言
时间: 2024-10-25 17:18:25 浏览: 25
C语言测试n的阶乘和x的n次方
在C语言中,计算一个整数x的n次方通常会涉及到循环或者递归,因为直接使用乘法运算可能会导致指数爆炸。这里是一个使用循环实现的`factorial_power`函数,用于计算x的n次方:
```c
#include <stdio.h>
// 定义计算阶乘的辅助函数
unsigned long long factorial(unsigned int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
// 计算x的n次方
unsigned long long power(int x, unsigned int n) {
// 使用循环避免指数爆炸
unsigned long long result = 1;
while (n > 0) {
if (n % 2 == 1) // 如果n是奇数,则将x乘入结果
result *= x;
x *= x; // 将x自乘
n /= 2; // 将n除以2,每次迭代n减半
}
return result;
}
int main() {
int x, n;
printf("请输入底数x和指数n:");
scanf("%d %u", &x, &n);
unsigned long long result = power(x, n);
printf("x 的 %u 次方的结果是:%llu\n", n, result);
return 0;
}
```
在这个程序中,我们首先定义了一个递归的`factorial`函数用于计算阶乘,然后在`power`函数中通过循环实现了快速幂算法来计算x的n次方。
阅读全文