编写递归函数,求1+2+3+……+n的值c语言代码
时间: 2023-07-02 22:06:02 浏览: 121
以下是求1+2+3+……+n的递归函数的C语言代码:
```
int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n-1);
}
}
```
可以通过调用`sum(n)`函数来计算1+2+3+……+n的值。
相关问题
编写C语言程序,自定义递归函数,求1+2+3+……+n。
以下是一个使用递归函数求解1+2+3+...+n的C语言程序:
```c
#include <stdio.h>
int sum(int n) {
if (n == 0) { // 递归终止条件
return 0;
} else {
return n + sum(n-1); // 递归调用
}
}
int main() {
int n, s;
printf("请输入一个正整数n:");
scanf("%d", &n);
s = sum(n);
printf("1+2+3+...+%d = %d\n", n, s);
return 0;
}
```
程序中定义了一个名为`sum`的递归函数,它接受一个整数n作为参数,并返回1+2+3+...+n的值。函数内部先判断是否到达递归终止条件(即n为0),如果是,则直接返回0;否则,递归调用`sum(n-1)`,并将n和`sum(n-1)`的返回值相加,最终得到1+2+3+...+n的值。在程序的主函数中,从用户输入获取n的值,再调用`sum(n)`计算出结果,并输出。
c语言编写函数,求1+2+3+…….+m
这里有两种方法可以实现求1到m的和的函数。
方法一:使用for循环遍历每个数字,累加求和。
```
int sum(int m) {
int result = 0;
for (int i = 1; i <= m; i++) {
result += i;
}
return result;
}
```
方法二:使用递归函数,每次递归将m减1,并累加m的值,直到m等于1。
```
int sum(int m) {
if (m == 1) {
return 1;
} else {
return m + sum(m-1);
}
}
```
两种方法的时间复杂度都是O(m),但是递归方法会使用更多的栈空间。在实际使用中,可以根据具体情况选择哪种方法更适合。