代码
// 递归计算序列
double calculate(int n, int i, int sign) { //i :当前项(从3 开始) sign :当前项的符号
// 基准情况
if (i > n)return 0;
// 递归
return sign * (1.0 / i) + calculate(n, i + 2, -sign);
//函数返回当前项的值(sign * 1/n)加上对下一项的递归调用结果
}
int main() {
int n;
printf("请输入奇数n:");
scanf("%d", &n);
if (n % 2 == 0) {
printf("输入错误\n");
return 1;
}
double result =1+ calculate(n,3, 1);
printf("计算结果为:%.6f\n", result);
return 0;
}
运行结果