【题】
求序列之和——递归
请使用递归算法求下列序列的前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;
}