级数和
Time Limit: 3000ms, Memory Limit:10000KB , Accepted:3633, Total Submissions:6696
Description
编写程序求下面级数前n项的和,其中n从键盘上输入。
Input
输入n为整型。
Output
输出和为实型,保留六位小数。
-
Sample Input
5
-
Sample Output
0.338462
Hint
Source
INPOJ
© 2002-2012 JDBSoft.
答案如下:
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
int main()
{
int i,j;
int n;
double a[1000],b[1000];
double sum;
cin>>n;
for(i=1;i<=n+1;i++)
{
a[i]=1.000000;
for(j=1;j<=i;j++)
{
a[i]*=2;
}
if(i%2==0)
{
a[i]=-a[i];
}
}
for(i=1;i<=n+1;i++)
{
if(i%2==0)
{
b[i]=fabs(a[i])+1;
}
else
{
b[i]=fabs(a[i])-1;
}
}
sum=0;
for(i=1;i<=n;i++)
{
sum+=(a[i])/((b[i])*b[i+1]);
}
cout<<fixed<<setprecision(6)<<sum<<endl;
}