Online Compiler C

#include <stdio.h> int sum_1_to_n(int n) { { if (n == 1) return 1; } return sum_1_to_n(n - 1) + n; } int main() { int n; scanf("%d",&n); printf("%d\n", sum_1_to_n(n)); return 0; }
这段代码定义了一个递归函数 `sum_1_to_n`,用于计算从1到n的整数和。主函数读取一个整数n,然后调用该函数并打印结果。递归的思路是:如果n等于1,返回1;否则返回 `sum_1_to_n(n-1) + n`。

- 函数内部有一对多余的花括号 `{ }` 包裹了 `if` 语句,虽然不影响功能,但会使代码结构不清晰,建议去掉。
- 递归函数没有处理n小于1的情况(比如n=0或负数),如果输入这样的值,函数会无限递归导致栈溢出。考虑是否需要增加对n的合法性检查。