求等比数列之和,C语言最简洁的代码
时间: 2024-10-25 16:10:43 浏览: 48
如何使用C语言来进行等比数列运算
在C语言中,求等比数列之和可以使用循环结构结合公式,如果已知首项a、公比r和项数n,最简洁的代码通常会涉及预处理常量和循环控制。这里是一个示例:
```c
#include <stdio.h>
#include <math.h> // 引入数学库,用于计算自然对数防止整型溢出
// 定义等比数列求和函数
double sum_of_geometric_series(double a, double r, int n) {
if (r == 1) { // 公比为1的情况,直接返回n倍的首项
return a * n;
} else if (abs(r) < 1 && n != INT_MAX) { // 当公比绝对值小于1且项数不是无穷大时
double result = a / (1 - r); // 使用公式 sum = a * (1 - r^n) / (1 - r)
return frexp(result, &exp) ? result * pow(10, exp) : result; // 避免浮点数溢出
} else {
double result = a * (1 - pow(r, n + 1)) / (1 - r);
return result; // 其他情况使用通用公式
}
}
int main() {
double a, r;
int n;
printf("请输入等比数列首项、公比和项数:\na = ");
scanf("%lf", &a);
printf("r = ");
scanf("%lf", &r);
printf("n = ");
scanf("%d", &n);
double sum = sum_of_geometric_series(a, r, n);
printf("等比数列的和为:%.2f\n", sum);
return 0;
}
```
阅读全文