递归方法求s=1+1/(1+2)+1/(1+2+3)+...+1/(1+2+3+...+10)
时间: 2023-12-25 07:05:42 浏览: 56
以下是递归方法求s的代码:
```c++
#include <stdio.h>
#include <stdlib.h>
double fun(int n);
int main(){
double s;
s = fun(10);
printf("s=%lf\n",s);
return 0;
}
double fun(int n){
if(n == 1) return 1.0/1;
else return 1.0/(n*(n+1)) + fun(n-1);
}
```
输出结果为:s=0.828968
相关问题
递归算法求sum=1+1/1+2+1/1+2+3+...+1/1+2+3+...+n
以下是Python实现:
```
def sum_recursive(n):
if n == 1:
return 1
else:
return sum_recursive(n-1) + sum(range(1,n+1))
def sequence_recursive(n):
if n == 1:
return "1"
else:
return sequence_recursive(n-1) + " " + " ".join([str(x) for x in range(1,n+1)])
n = 3
s = sequence_recursive(n)
print(s)
lst = [int(x) for x in s.split()]
sum = sum_recursive(n)
print(sum)
```
其中,`sum_recursive`函数用于计算前n个数的和,`sequence_recursive`函数用于生成前n个数的序列。在`sum_recursive`函数中,利用递归计算前n-1个数的和,然后加上第n个数到1的和。在`sequence_recursive`函数中,利用递归生成前n-1个数的序列,然后加上第n个数到1的序列。最后,将生成的序列转化为列表,再计算前n个数的和。
C语言递归算法求sum=1+1/1+2+1/1+2+3+...+1/1+2+3+...+n
#include<stdio.h>
double sum(int n){
if(n == 1){ //递归终止条件
return 1;
}
else{
double s = 0;
for(int i = 1; i <= n; i++){
s += 1.0 / i; //计算1/1+1/2+1/3+...+1/n
}
return sum(n-1) + s; //递归计算1/1+1/2+1/3+...+1/n的和
}
}
int main(){
int n;
printf("请输入n的值:");
scanf("%d", &n);
printf("sum = %lf", sum(n));
return 0;
}
阅读全文