【题】
求序列之和——递归
请使用递归算法求下列序列的前n项之和。
1 + 1/2 - 1/3 + 1/4 -1/5 ......
输入:
n
输出:
序列的前n项和(精确到小数点之后第6位)
| 测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
|---|---|---|---|---|---|
| 测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
| 测试用例 2 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
【代码】
#include "stdio.h"
double Sum(int n)
{
if(n == 1)
return 1;
else if(n % 2 == 0)
return 1/(double)n + Sum(n-1);
else if(n % 2 == 1)
return -1/(double)n + Sum(n-1);
}
int main()
{
int n;
scanf("%d", &n);
getchar();
double y = Sum(n);
if(y == (int)y)
printf("%d\n", (int)y);
else
printf("%f\n", y);
return 0;
}
本文介绍如何利用递归算法计算序列1 + 1/2 - 1/3 + 1/4 - 1/5...的前n项和,要求结果精确到小数点后第六位。
239

被折叠的 条评论
为什么被折叠?



