如图所示,我自己编写的代码有什么地方出现了问题,又有哪些地方可以优化
vs版本2022
你这里用循环就不用递归,用递归就不用循环,两个不能一起来啊
递归版本
#include <iostream>
using namespace std;
double fun1(int n)
{
if (n == 1)
{
return 1;
}
else if (n % 2 == 0)
{
return -1.0 * n / (2 * n - 1) + fun1(n - 1);
}
else
{
return 1.0 * n / (2 * n - 1) + fun1(n - 1);
}
}
int main()
{
int n;
cout << "请输入一个整数 n:";
cin >> n;
cout << "结果为:" << fun1(n) << endl;
return 0;
}
循环版本
double fun1(int n)
{
double sum = 0;
int i = 1;
while (i <= n)
{
if (i % 2 == 0)
{
sum -= i * 1.0 / (2 * i - 1);
}
else
{
sum += i * 1.0 / (2 * i - 1);
}
i++;
}
return sum;
}