帮我写一份快速指数算法的c语言代码
时间: 2024-12-13 20:15:30 浏览: 7
快速幂算法(也称为 exponentiation by squaring 或者二进制求幂)是一种高效计算大整数次方的方法,特别适用于计算大数值的乘方运算,避免了直接递归乘法带来的效率问题。以下是C语言版本的快速幂算法示例:
```c
#include <stdio.h>
// 定义快速幂函数
long long fastPower(long long base, int exp) {
// 如果指数是0,返回1(任何数的0次幂都是1)
if (exp == 0)
return 1;
// 如果指数是奇数,我们先将结果计算出来,然后平方当前结果
if (exp % 2 != 0) {
return base * fastPower(base, exp - 1);
}
// 如果指数是偶数,我们可以先将基数平方,然后除以2,递归地处理剩下的指数
long long half = fastPower(base, exp / 2);
return half * half;
}
int main() {
long long base, exp;
printf("请输入底数:");
scanf("%lld", &base);
printf("请输入指数:");
scanf("%d", &exp);
long long result = fastPower(base, exp);
printf("底数 %lld 的 %d 次方等于 %lld\n", base, exp, result);
return 0;
}
```
当你运行此程序并输入底数和指数,它会输出给定底数的指定次方结果。
阅读全文