编写C语言程序,自定义递归函数,求1+2+3+……+n。
时间: 2023-10-24 07:24:16 浏览: 107
以下是一个使用递归函数求解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)`计算出结果,并输出。
相关问题
python自定义函数求和,1!+2!+3!+……+n!求和用C语言编写,要求使用函数嵌套调用...
这道题目可以使用递归函数来实现。递归函数是指在函数的定义中调用函数本身的方法。下面是一个使用递归函数来求n!的例子:
```
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
```
这个函数的意思是,如果n等于0,那么返回1;否则返回n乘以factorial(n-1)的结果。这个函数可以用来计算1!到n!的和,只需要在主函数中调用这个函数即可。
下面是一个使用函数嵌套调用来实现的例子:
```
#include <stdio.h>
int factorial(int n);
int main() {
int n = 10;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
printf("%d\n", sum);
return 0;
}
int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
```
这个例子中,factorial函数用来计算n的阶乘,而主函数中使用for循环来计算1!到n!的和。
编写以下问题的C语言程序:有数列1,3,6,10,15,……,输出第n项,用f,n,r来定义变量,n为此数列的项数,f为一个自定义的递归函数,r为自定义递归函数f里的一个变量
f(n, r) = n + f(n-1, r+n),当n=1时,f(n, r) = r。
int nth(int n) {
int r = 0;
return f(n, r);
}
int f(int n, int r) {
if (n == 1) {
return r;
}
return n + f(n-1, r+n);
}
阅读全文