方法1:使用循环(for/while)
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入n的值: ");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += i;
}
printf("1到%d的和为: %d\n", n, sum);
return 0;
}
方法2:数学公式(高斯求和)
利用公式 *Sum = n(n+1)/2** 直接计算,效率更高:

(图片来源网络,侵删)
#include <stdio.h>
int main() {
int n;
printf("请输入n的值: ");
scanf("%d", &n);
int sum = n * (n + 1) / 2;
printf("1到%d的和为: %d\n", n, sum);
return 0;
}
方法3:递归实现
#include <stdio.h>
int sumRecursive(int n) {
if (n == 1) return 1;
return n + sumRecursive(n - 1);
}
int main() {
int n;
printf("请输入n的值: ");
scanf("%d", &n);
printf("1到%d的和为: %d\n", n, sumRecursive(n));
return 0;
}
示例输出
- 输入
n = 5,输出1到5的和为: 15(因为 1+2+3+4+5=15)。
关键点说明
- 循环方法:直观易懂,适合初学者。
- 数学公式:时间复杂度O(1),效率最高。
- 递归方法:逻辑简洁,但可能因递归深度过大导致栈溢出(n过大时不推荐)。
根据实际需求选择合适的方法即可!

(图片来源网络,侵删)
