.请使用递归算法求下列序列的前n项之和。 1 + 1⼀2 - 1⼀3 + 1⼀4 -1⼀5 ......

输入n序列的前n项和(精确到小数点后六位)
2024-12-13 17:40:55
推荐回答(3个)
回答1:

#include

float xulie(int x);

void main()
{
int n;
scanf("%d",&n);
printf("%f",xulie(n));

}

float xulie(int x)
{
if(x==1)
return 1;
else
return (x%2==0)?xulie(x-1)+1.0/x:xulie(x-1)-1.0/x;
}

回答2:

#include
#include
using namespace std;
void main()
{
int n;
double t;
double sum(int x);
cout<<"please input the value of n:"< cin>>n;
t=sum(n);
cout<<"sum: "<}
double sum(int x)
{
if(x==1)
return 1.0;
else
if (x%2==0)
return sum(x-1)+1.0/x;
else
return sum(x-1)-1.0/x;

}

回答3:

var n:integer;

function f(n:integer):real;
begin
if n=2 then begin f:=1/2;exit; end;
if n mod 2=0 then
f:=f(n-1)+1/n
else
f:=f(n-1)-1/n;
end;

begin
readln(n);
writeln(f(n)+1);
end.