关于#c语言#的问题:编写一个程序expl-1.cpp,对于给定的正整数n,求1+2+...+n,采用逐个累加和n(n+1)/2(高斯...
在C语言中,编写一个程序来计算给定正整数n的累加和可以使用两种方法:逐个累加和数学公式。下面我会分别展示这两种方法的实现。
方法一:逐个累加
逐个累加的方法比较直观,即从1累加到n,求和结果。
c#include <stdio.h>
int main() {
int n, sum = 0;
// 获取用户输入的正整数n
printf("请输入一个正整数 n:");
scanf("%d", &n);
// 使用逐个累加计算 1 + 2 + ... + n
for (int i = 1; i <= n; ++i) {
sum += i;
}
// 输出结果
printf("1 到 %d 的累加和为:%d\n", n, sum);
return 0;
}
方法二:高斯公式
高斯公式是数学上计算1到n的和的公式,可以直接用来计算,其公式为:
c#include <stdio.h>
int main() {
int n, sum;
// 获取用户输入的正整数n
printf("请输入一个正整数 n:");
scanf("%d", &n);
// 使用高斯公式计算 1 + 2 + ... + n
sum = n * (n + 1) / 2;
// 输出结果
printf("1 到 %d 的累加和为:%d\n", n, sum);
return 0;
}
解释关键步骤:
用户输入:使用
scanf
函数获取用户输入的正整数n。逐个累加方法:通过循环从1累加到n,每次累加当前的循环变量i。
高斯公式方法:直接使用数学公式计算1到n的和,避免了逐个累加的迭代过程。
这两种方法都是有效的,但高斯公式方法更为高效,因为它的时间复杂度为O(1),而逐个累加方法的时间复杂度为O(n)。
通过这些代码示例,你可以选择适合你需求的方法来计算1到n的累加和。