c语言作业:◆程序设计:用递归方法求1+2+...+ n 的和。
时间: 2023-08-04 16:04:31 浏览: 92
好的,这是一个经典的递归问题,下面是递归函数的实现:
```c
#include <stdio.h>
int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n-1);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("1 + 2 + ... + %d = %d\n", n, sum(n));
return 0;
}
```
这个递归函数的意思是,当 n 等于 1 时,返回 1;否则返回 n 加上前 n-1 个数的和,即 sum(n-1)。这样每次递归都会把问题的规模缩小,直到 n 等于 1 时停止递归。
相关问题
程序设计:用递归方法求1+2+…+n的和。c语言
求 $1+2+...+n$ 的和可以使用递归方法,代码如下:
```c
int sum(int n) {
if (n == 0) {
return 0;
}
return n + sum(n - 1);
}
```
这个程序中,我们定义了一个 `sum` 函数,它的功能是求 $1+2+...+n$ 的和。当 $n=0$ 时,我们返回 $0$;否则,我们使用递归方法将 $1+2+...+n$ 分解为 $n+(1+2+...+(n-1))$,从而求解 $1+2+...+n$ 的和。
用C语言递归的方法求1+2+3+...+n
以下是使用C语言递归的方法求1+2+3+...+n的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int sum(int n);
int main() {
int n;
printf("Please enter a number:");
scanf("%d", &n);
if (n <= 0) {
printf("Enter error");
exit(0);
}
printf("sum=%d\n", sum(n));
return 0;
}
int sum(int n) {
if (n == 1) {
return 1;
}
return n + sum(n - 1);
}
```
阅读全文