编程求:sum(n)= i=1 ∑ n i=1+2+3+…+n 输入格式: 多行数据,每行1个正整数n 输出格式: 对输入的每一个数据n,输出对应的sum(n),每行输出一个数据,结果保证在int范围内(32-bit)。
时间: 2024-09-21 20:02:38 浏览: 77
在编程中,如果你想要计算从1加到n的所有整数之和(即算术序列的前n项和),可以使用等差数列求和的公式。对于每个输入的正整数n,可以使用下面的算法:
```c
#include <stdio.h>
// 函数定义求和
int sum(int n) {
return (n * (n + 1)) / 2; // 等差数列求和公式,n*(n+1)/2
}
int main() {
int n;
while (scanf("%d", &n) == 1) { // 检查是否成功读入整数
int result = sum(n);
if (result <= INT_MAX) { // 确保结果在32位整型范围内
printf("%d\n", result); // 输出结果,每行一个
} else {
printf("Overflow! The result exceeds the maximum value of an int.\n");
}
}
return 0;
}
```
在这个程序里,我们首先定义了一个`sum`函数,它接受一个整数n并返回其从1加到n的和。在`main`函数中,通过`scanf`逐行读取用户的输入,并利用`sum`函数计算和。如果结果小于等于INT_MAX(32位整型的最大值),则输出;否则提示溢出。
阅读全文