C语言递归算法求sum=1+1/1+2+1/1+2+3+...+1/1+2+3+...+n
时间: 2023-09-07 15:12:31 浏览: 212
用递归求1+2+3+...+n的程序
以下是递归算法的实现:
```c
#include <stdio.h>
// 递归函数,计算sum
double sum(int n) {
if (n == 1) {
return 1;
} else {
return sum(n-1) + 1.0 / (n*(n+1));
}
}
int main() {
int n;
printf("请输入n的值:");
scanf("%d", &n);
printf("sum = %lf\n", sum(n));
return 0;
}
```
递归函数 `sum(n)` 的意义是求前n个数的和,其中第i个数为1/(1\*2\*...i)。当n等于1时,直接返回1,否则返回 `sum(n-1) + 1.0 / (n*(n+1))`,即前n-1个数的和加上第n个数。注意,1.0表示将分子转为浮点数,避免整数除法的问题。
阅读全文