语言: C)计算1*2*3 + 3*4*5+…+ 99*100*101的值 输入提示信息和格式:无 输出提示信息和格式:"sum = %ld\n"、
时间: 2024-11-27 12:23:46 浏览: 18
这是一个求阶乘数列和的问题。我们可以使用循环结构,每次计算三个连续整数的积然后累加到总和上。这里是一个简单的C程序来解决这个问题:
```c
#include <stdio.h>
long long factorial_sum(int n) {
long long sum = 0;
for (int i = 1; i <= n; i++) {
if (i <= 3) {
sum += i * (i + 1) * (i + 2);
} else if (i == 4) {
// 因为100! 和 101! 的计算超出了64位有符号长整型范围,所以我们只计算到3*4*5
sum += 3 * 4 * 5;
} else {
int start = i * (i - 1) * i;
int end = (i + 2) * (i + 1) * (i + 3);
sum += (end - start) / 6;
}
}
return sum;
}
int main() {
int n = 100; // 我们取1到100这个序列
long long result = factorial_sum(n);
printf("sum = %lld\n", result);
return 0;
}
```
注意,当i大于等于4时,我们需要特殊处理100! 和 101!,因为它们的计算结果会超出64位有符号长整型(long long)的表示范围。所以这部分我们使用了一个近似的公式,仅保留了每组3个连续数字乘积的一部分。
阅读全文