如何使用C语言中的while循环计算一个数a的n次方并求其各次幂之和?
时间: 2024-10-14 08:07:14 浏览: 101
在C语言中,你可以使用while循环结合递归来计算一个数a的n次方,并同时累加每次幂的结果。以下是一个简单的示例:
```c
#include <stdio.h>
// 计算 a 的 n 次方
long long power(int a, int n) {
if (n == 0) // 如果 n 为 0,则返回 1 (任何数的0次幂都是1)
return 1;
else if (n % 2 == 0) // 如果 n 为偶数,可以先平方再除以2
return power(a * a, n / 2);
else { // 如果 n 为奇数,直接乘上 a 然后再减一
long long half = power(a, n / 2); // 计算一半
return a * half * half; // 双倍半次幂的结果
}
}
// 使用 while 循环计算各次幂之和
int main() {
int a = 2; // 要计算的底数
int n = 5; // 要计算的次数
int sum = 0; // 初始化幂的和为0
int i = 1; // 初始幂指数
while (i <= n) {
sum += pow(a, i); // 用 C 标准库函数 pow 来计算幂
i++;
}
printf("The sum of powers from %d to %d of %d is %lld.\n", 1, n, a, sum);
return 0;
}
```
在这个程序中,`power` 函数负责计算单次幂,然后在 `main` 函数的 while 循环里,逐步增加幂的指数 `i` 并累计结果。
阅读全文